Files
project-auth-server/coverage-history/v0.0.1-SNAPSHOT/2026-05-04-jqwik-after/bootstrap/jacoco/html/com.project.auth.config.auth/ResourceServerSecurityConfiguration.java.html
T

100 lines
6.4 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ResourceServerSecurityConfiguration.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">bootstrap</a> &gt; <a href="index.source.html" class="el_package">com.project.auth.config.auth</a> &gt; <span class="el_source">ResourceServerSecurityConfiguration.java</span></div><h1>ResourceServerSecurityConfiguration.java</h1><pre class="source lang-java linenums">package com.project.auth.config.auth;
import com.project.auth.config.auth.security.KeycloakAuthenticatedUserFactory;
import com.project.auth.config.auth.security.KeycloakGrantedAuthoritiesConverter;
import com.project.auth.config.auth.security.KeycloakJwtAuthenticationConverter;
import com.project.auth.config.auth.security.SecurityActorIdResolver;
import com.project.auth.config.auth.security.SecurityAuditTrailWriter;
import com.project.auth.config.auth.security.SecurityExceptionHandler;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.oauth2.jwt.Jwt;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.web.servlet.HandlerExceptionResolver;
import java.util.Collection;
@Configuration
<span class="fc" id="L24">public class ResourceServerSecurityConfiguration {</span>
private static final String REALM_ROLE_USER = &quot;user&quot;;
@Bean
public SecurityActorIdResolver securityActorIdResolver() {
<span class="fc" id="L30"> return new SecurityActorIdResolver();</span>
}
@Bean
public SecurityAuditTrailWriter securityAuditTrailWriter(SecurityActorIdResolver securityActorIdResolver) {
<span class="fc" id="L35"> return new SecurityAuditTrailWriter(securityActorIdResolver);</span>
}
@Bean
public SecurityExceptionHandler securityExceptionHandler(
@Qualifier(&quot;handlerExceptionResolver&quot;) HandlerExceptionResolver handlerExceptionResolver,
SecurityAuditTrailWriter securityAuditTrailWriter
) {
<span class="fc" id="L43"> return new SecurityExceptionHandler(handlerExceptionResolver, securityAuditTrailWriter);</span>
}
@Bean
public Converter&lt;Jwt, Collection&lt;GrantedAuthority&gt;&gt; keycloakGrantedAuthoritiesConverter() {
<span class="fc" id="L48"> return new KeycloakGrantedAuthoritiesConverter();</span>
}
@Bean
public KeycloakAuthenticatedUserFactory keycloakAuthenticatedUserFactory() {
<span class="fc" id="L53"> return new KeycloakAuthenticatedUserFactory();</span>
}
@Bean
public Converter&lt;Jwt, ? extends AbstractAuthenticationToken&gt; jwtAuthenticationConverter(
Converter&lt;Jwt, Collection&lt;GrantedAuthority&gt;&gt; keycloakGrantedAuthoritiesConverter,
KeycloakAuthenticatedUserFactory keycloakAuthenticatedUserFactory
) {
<span class="fc" id="L61"> return new KeycloakJwtAuthenticationConverter(</span>
keycloakGrantedAuthoritiesConverter,
keycloakAuthenticatedUserFactory
);
}
@Bean
public SecurityFilterChain securityFilterChain(
HttpSecurity http,
Converter&lt;Jwt, ? extends AbstractAuthenticationToken&gt; jwtAuthenticationConverter,
SecurityExceptionHandler securityExceptionHandler
) throws Exception {
<span class="fc" id="L73"> return http</span>
<span class="fc" id="L74"> .csrf(csrf -&gt; csrf.disable())</span>
<span class="fc" id="L75"> .authorizeHttpRequests(authorize -&gt; authorize</span>
<span class="fc" id="L76"> .requestMatchers(</span>
&quot;/actuator/health&quot;,
&quot;/actuator/health/**&quot;,
&quot;/livez&quot;,
&quot;/readyz&quot;,
&quot;/swagger-ui.html&quot;,
&quot;/swagger-ui/**&quot;,
&quot;/v3/api-docs/**&quot;
<span class="fc" id="L84"> ).permitAll()</span>
<span class="fc" id="L85"> .requestMatchers(HttpMethod.GET, &quot;/api/v1/auth/me&quot;).hasRole(REALM_ROLE_USER)</span>
<span class="fc" id="L86"> .anyRequest().authenticated()</span>
)
<span class="fc" id="L88"> .oauth2ResourceServer(oauth2 -&gt; oauth2</span>
<span class="fc" id="L89"> .jwt(jwt -&gt; jwt.jwtAuthenticationConverter(jwtAuthenticationConverter))</span>
<span class="fc" id="L90"> .authenticationEntryPoint(securityExceptionHandler)</span>
<span class="fc" id="L91"> .accessDeniedHandler(securityExceptionHandler)</span>
)
<span class="fc" id="L93"> .exceptionHandling(exceptions -&gt; exceptions</span>
<span class="fc" id="L94"> .authenticationEntryPoint(securityExceptionHandler)</span>
<span class="fc" id="L95"> .accessDeniedHandler(securityExceptionHandler)</span>
)
<span class="fc" id="L97"> .build();</span>
}
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>