44import org .springframework .context .annotation .Bean ;
55import org .springframework .context .annotation .Configuration ;
66import org .springframework .security .authorization .AuthorizationDecision ;
7+ import org .springframework .security .authorization .AuthorizationResult ;
78import org .springframework .security .config .annotation .method .configuration .EnableMethodSecurity ;
89import org .springframework .security .config .annotation .web .builders .HttpSecurity ;
910import org .springframework .security .config .annotation .web .configuration .EnableWebSecurity ;
@@ -28,16 +29,21 @@ public class SecurityConfig {
2829 protected String [] allowedEndpoint ;
2930
3031 @ Bean
31- public SecurityFilterChain filterChain (HttpSecurity http ) throws Exception {
32+ public SecurityFilterChain filterChain (HttpSecurity http ) {
3233 return http .authorizeHttpRequests (auth -> auth .requestMatchers (allowedEndpoint ).permitAll ()
3334 .anyRequest ().access (this ::authorize ))
3435 .sessionManagement (auth -> auth .sessionCreationPolicy (SessionCreationPolicy .STATELESS ))
3536 .csrf (AbstractHttpConfigurer ::disable ).build ();
3637 }
3738
38- private AuthorizationDecision authorize (Supplier <Authentication > authentication , RequestAuthorizationContext object ) {
39- final var remoteAddress = object .getRequest ().getRemoteAddr ();
40- var decision = new AuthorizationDecision (authentication .get ().isAuthenticated ());
39+ protected AuthorizationResult authorize (Supplier <? extends Authentication > supplier , RequestAuthorizationContext requestAuthorizationContext ) {
40+ final var authentication = supplier .get ();
41+
42+ if (authentication == null || !authentication .isAuthenticated ()) {
43+ return new AuthorizationDecision (false );
44+ }
45+
46+ final var remoteAddress = requestAuthorizationContext .getRequest ().getRemoteAddr ();
4147
4248 boolean isAllowed = false ;
4349 for (String address : allowedAddresses ) {
@@ -49,10 +55,10 @@ private AuthorizationDecision authorize(Supplier<Authentication> authentication,
4955 }
5056
5157 if (!isAllowed ) {
52- decision = new AuthorizationDecision (false );
58+ return new AuthorizationDecision (false );
5359 }
5460
55- return decision ;
61+ return new AuthorizationDecision ( true ) ;
5662 }
5763
5864}
0 commit comments