@ -24,8 +24,8 @@ import org.springframework.security.authorization.AuthenticatedReactiveAuthoriza
@@ -24,8 +24,8 @@ import org.springframework.security.authorization.AuthenticatedReactiveAuthoriza
import org.springframework.security.authorization.AuthorityReactiveAuthorizationManager ;
import org.springframework.security.authorization.AuthorizationDecision ;
import org.springframework.security.authorization.ReactiveAuthorizationManager ;
import org.springframework.security.web.server.AuthenticationEntryPoint ;
import org.springframework.security.web.server.DelegatingAuthenticationEntryPoint ;
import org.springframework.security.web.server.Server AuthenticationEntryPoint ;
import org.springframework.security.web.server.DelegatingServer AuthenticationEntryPoint ;
import org.springframework.security.web.server.ServerFormLoginAuthenticationConverter ;
import org.springframework.security.web.server.ServerHttpBasicAuthenticationConverter ;
import org.springframework.security.web.server.MatcherSecurityWebFilterChain ;
@ -33,12 +33,12 @@ import org.springframework.security.web.server.SecurityWebFilterChain;
@@ -33,12 +33,12 @@ import org.springframework.security.web.server.SecurityWebFilterChain;
import org.springframework.security.web.server.authentication.AuthenticationEntryPointFailureHandler ;
import org.springframework.security.web.server.authentication.AuthenticationFailureHandler ;
import org.springframework.security.web.server.authentication.AuthenticationWebFilter ;
import org.springframework.security.web.server.authentication.RedirectAuthenticationEntryPoint ;
import org.springframework.security.web.server.authentication.RedirectServer AuthenticationEntryPoint ;
import org.springframework.security.web.server.authentication.RedirectAuthenticationSuccessHandler ;
import org.springframework.security.web.server.authentication.logout.LogoutHandler ;
import org.springframework.security.web.server.authentication.logout.LogoutWebFilter ;
import org.springframework.security.web.server.authentication.logout.SecurityContextRepositoryLogoutHandler ;
import org.springframework.security.web.server.authentication.www.HttpBasicAuthenticationEntryPoint ;
import org.springframework.security.web.server.authentication.www.HttpBasicServer AuthenticationEntryPoint ;
import org.springframework.security.web.server.authorization.AuthorizationContext ;
import org.springframework.security.web.server.authorization.AuthorizationWebFilter ;
import org.springframework.security.web.server.authorization.DelegatingReactiveAuthorizationManager ;
@ -73,7 +73,7 @@ import java.util.Arrays;
@@ -73,7 +73,7 @@ import java.util.Arrays;
import java.util.Collections ;
import java.util.List ;
import static org.springframework.security.web.server.DelegatingAuthenticationEntryPoint.DelegateEntry ;
import static org.springframework.security.web.server.DelegatingServer AuthenticationEntryPoint.DelegateEntry ;
/ * *
* @author Rob Winch
@ -96,7 +96,7 @@ public class HttpSecurity {
@@ -96,7 +96,7 @@ public class HttpSecurity {
private SecurityContextRepository securityContextRepository ;
private AuthenticationEntryPoint a uthenticationEntryPoint;
private ServerAuthenticationEntryPoint serverA uthenticationEntryPoint;
private List < DelegateEntry > defaultEntryPoints = new ArrayList < > ( ) ;
@ -193,7 +193,7 @@ public class HttpSecurity {
@@ -193,7 +193,7 @@ public class HttpSecurity {
if ( this . securityContextRepository ! = null ) {
this . formLogin . securityContextRepository ( this . securityContextRepository ) ;
}
if ( this . formLogin . a uthenticationEntryPoint = = null ) {
if ( this . formLogin . serverA uthenticationEntryPoint = = null ) {
this . webFilters . add ( new OrderedWebFilter ( new LoginPageGeneratingWebFilter ( ) , SecurityWebFiltersOrder . LOGIN_PAGE_GENERATING . getOrder ( ) ) ) ;
}
this . formLogin . configure ( this ) ;
@ -203,10 +203,11 @@ public class HttpSecurity {
@@ -203,10 +203,11 @@ public class HttpSecurity {
}
this . addFilterAt ( new AuthenticationReactorContextFilter ( ) , SecurityWebFiltersOrder . AUTHENTICATION_CONTEXT ) ;
if ( this . authorizeExchangeBuilder ! = null ) {
AuthenticationEntryPoint a uthenticationEntryPoint = getAuthenticationEntryPoint ( ) ;
ServerAuthenticationEntryPoint serverA uthenticationEntryPoint = getServer AuthenticationEntryPoint ( ) ;
ExceptionTranslationWebFilter exceptionTranslationWebFilter = new ExceptionTranslationWebFilter ( ) ;
if ( authenticationEntryPoint ! = null ) {
exceptionTranslationWebFilter . setAuthenticationEntryPoint ( authenticationEntryPoint ) ;
if ( serverAuthenticationEntryPoint ! = null ) {
exceptionTranslationWebFilter . setServerAuthenticationEntryPoint (
serverAuthenticationEntryPoint ) ;
}
this . addFilterAt ( exceptionTranslationWebFilter , SecurityWebFiltersOrder . EXCEPTION_TRANSLATION ) ;
this . authorizeExchangeBuilder . configure ( this ) ;
@ -215,14 +216,14 @@ public class HttpSecurity {
@@ -215,14 +216,14 @@ public class HttpSecurity {
return new MatcherSecurityWebFilterChain ( getSecurityMatcher ( ) , this . webFilters ) ;
}
private AuthenticationEntryPoint getAuthenticationEntryPoint ( ) {
if ( this . a uthenticationEntryPoint ! = null | | this . defaultEntryPoints . isEmpty ( ) ) {
return this . a uthenticationEntryPoint;
private Server AuthenticationEntryPoint getServer AuthenticationEntryPoint ( ) {
if ( this . serverA uthenticationEntryPoint ! = null | | this . defaultEntryPoints . isEmpty ( ) ) {
return this . serverA uthenticationEntryPoint;
}
if ( this . defaultEntryPoints . size ( ) = = 1 ) {
return this . defaultEntryPoints . get ( 0 ) . getEntryPoint ( ) ;
}
DelegatingAuthenticationEntryPoint result = new DelegatingAuthenticationEntryPoint ( this . defaultEntryPoints ) ;
DelegatingServer AuthenticationEntryPoint result = new DelegatingServer AuthenticationEntryPoint ( this . defaultEntryPoints ) ;
result . setDefaultEntryPoint ( this . defaultEntryPoints . get ( this . defaultEntryPoints . size ( ) - 1 ) . getEntryPoint ( ) ) ;
return result ;
}
@ -323,7 +324,7 @@ public class HttpSecurity {
@@ -323,7 +324,7 @@ public class HttpSecurity {
private SecurityContextRepository securityContextRepository = new ServerWebExchangeAttributeSecurityContextRepository ( ) ;
private AuthenticationEntryPoint entryPoint = new HttpBasicAuthenticationEntryPoint ( ) ;
private Server AuthenticationEntryPoint entryPoint = new HttpBasicServer AuthenticationEntryPoint ( ) ;
public HttpBasicBuilder authenticationManager ( ReactiveAuthenticationManager authenticationManager ) {
this . authenticationManager = authenticationManager ;
@ -374,7 +375,7 @@ public class HttpSecurity {
@@ -374,7 +375,7 @@ public class HttpSecurity {
private SecurityContextRepository securityContextRepository = new WebSessionSecurityContextRepository ( ) ;
private AuthenticationEntryPoint a uthenticationEntryPoint;
private ServerAuthenticationEntryPoint serverA uthenticationEntryPoint;
private ServerWebExchangeMatcher requiresAuthenticationMatcher ;
@ -386,14 +387,14 @@ public class HttpSecurity {
@@ -386,14 +387,14 @@ public class HttpSecurity {
}
public FormLoginBuilder loginPage ( String loginPage ) {
this . a uthenticationEntryPoint = new RedirectAuthenticationEntryPoint ( loginPage ) ;
this . serverA uthenticationEntryPoint = new RedirectServer AuthenticationEntryPoint ( loginPage ) ;
this . requiresAuthenticationMatcher = ServerWebExchangeMatchers . pathMatchers ( HttpMethod . POST , loginPage ) ;
this . authenticationFailureHandler = new AuthenticationEntryPointFailureHandler ( new RedirectAuthenticationEntryPoint ( loginPage + "?error" ) ) ;
this . authenticationFailureHandler = new AuthenticationEntryPointFailureHandler ( new RedirectServer AuthenticationEntryPoint ( loginPage + "?error" ) ) ;
return this ;
}
public FormLoginBuilder authenticationEntryPoint ( AuthenticationEntryPoint a uthenticationEntryPoint) {
this . authenticationEntryPoint = a uthenticationEntryPoint;
public FormLoginBuilder authenticationEntryPoint ( ServerAuthenticationEntryPoint serverA uthenticationEntryPoint) {
this . serverAuthenticationEntryPoint = serverA uthenticationEntryPoint;
return this ;
}
@ -422,13 +423,13 @@ public class HttpSecurity {
@@ -422,13 +423,13 @@ public class HttpSecurity {
}
protected void configure ( HttpSecurity http ) {
if ( this . a uthenticationEntryPoint = = null ) {
if ( this . serverA uthenticationEntryPoint = = null ) {
loginPage ( "/login" ) ;
}
MediaTypeServerWebExchangeMatcher htmlMatcher = new MediaTypeServerWebExchangeMatcher (
MediaType . TEXT_HTML ) ;
htmlMatcher . setIgnoredMediaTypes ( Collections . singleton ( MediaType . ALL ) ) ;
HttpSecurity . this . defaultEntryPoints . add ( 0 , new DelegateEntry ( htmlMatcher , this . a uthenticationEntryPoint) ) ;
HttpSecurity . this . defaultEntryPoints . add ( 0 , new DelegateEntry ( htmlMatcher , this . serverA uthenticationEntryPoint) ) ;
AuthenticationWebFilter authenticationFilter = new AuthenticationWebFilter (
this . authenticationManager ) ;
authenticationFilter . setRequiresAuthenticationMatcher ( this . requiresAuthenticationMatcher ) ;