diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/HttpSecurityBuilder.java b/config/src/main/java/org/springframework/security/config/annotation/web/HttpSecurityBuilder.java index 842c3a73ae..d095885daa 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/HttpSecurityBuilder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/HttpSecurityBuilder.java @@ -171,7 +171,4 @@ public interface HttpSecurityBuilder> extends S * @return the {@link HttpSecurity} for further customizations */ H addFilter(Filter filter); - - // FIXME shared object or explicit? - AuthenticationManager getAuthenticationManager(); } \ No newline at end of file diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java b/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java index 1a3407db7c..8969b873c6 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java @@ -112,8 +112,6 @@ import org.springframework.util.Assert; * @see EnableWebSecurity */ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder implements SecurityBuilder, HttpSecurityBuilder { - private AuthenticationManager authenticationManager; - private final RequestMatcherConfigurer requestMatcherConfigurer = new RequestMatcherConfigurer(); private List filters = new ArrayList(); private RequestMatcher requestMatcher = new AnyRequestMatcher(); @@ -984,7 +982,7 @@ public final class HttpSecurity extends AbstractConfiguredSecurityBuilder,C if(metadataSource == null) { return; } - FilterSecurityInterceptor securityInterceptor = createFilterSecurityInterceptor(metadataSource, http.getAuthenticationManager()); + FilterSecurityInterceptor securityInterceptor = createFilterSecurityInterceptor(metadataSource, http.getSharedObject(AuthenticationManager.class)); if(filterSecurityInterceptorOncePerRequest != null) { securityInterceptor.setObserveOncePerRequest(filterSecurityInterceptorOncePerRequest); } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurer.java index 6e8673818f..e34018cfb6 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ExpressionUrlAuthorizationConfigurer.java @@ -56,11 +56,7 @@ import org.springframework.util.StringUtils; * *

Shared Objects Used

* - * The following shared objects are used: - * - *
    - *
  • {@link org.springframework.security.config.annotation.web.builders.HttpSecurity#getAuthenticationManager()}
  • - *
+ * No shared objects are used. * * @param the type of {@link HttpSecurityBuilder} that is being configured * diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/FormLoginConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/FormLoginConfigurer.java index 23c52b1aca..42ab6db7ac 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/FormLoginConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/FormLoginConfigurer.java @@ -54,7 +54,7 @@ import org.springframework.security.web.util.RequestMatcher; * The following shared objects are used: * *
    - *
  • {@link HttpSecurity#getAuthenticationManager()}
  • + *
  • {@link AuthenticationManager}
  • *
  • {@link RememberMeServices} - is optionally used. See {@link RememberMeConfigurer}
  • *
  • {@link SessionAuthenticationStrategy} - is optionally used. See {@link SessionManagementConfigurer}
  • *
  • {@link DefaultLoginPageViewFilter} - if present will be populated with information from the configuration
  • diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurer.java index 3ea33b9969..561919f3e5 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/HttpBasicConfigurer.java @@ -59,7 +59,7 @@ import org.springframework.web.accept.HeaderContentNegotiationStrategy; * The following shared objects are used: * *
      - *
    • {@link HttpSecurity#getAuthenticationManager()}
    • + *
    • {@link AuthenticationManager}
    • *
    * * @author Rob Winch @@ -145,7 +145,7 @@ public final class HttpBasicConfigurer> extends @Override public void configure(B http) throws Exception { - AuthenticationManager authenticationManager = http.getAuthenticationManager(); + AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); BasicAuthenticationFilter basicAuthenticationFilter = new BasicAuthenticationFilter(authenticationManager, authenticationEntryPoint); if(authenticationDetailsSource != null) { basicAuthenticationFilter.setAuthenticationDetailsSource(authenticationDetailsSource); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/JeeConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/JeeConfigurer.java index cadbd5eb7e..6434f1502f 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/JeeConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/JeeConfigurer.java @@ -62,7 +62,7 @@ import org.springframework.security.web.authentication.preauth.j2ee.J2eePreAuthe * The following shared objects are used: * *
      - *
    • {@link HttpSecurity#getAuthenticationManager()}
    • + *
    • {@link AuthenticationManager}
    • *
    * * @author Rob Winch @@ -204,8 +204,7 @@ public final class JeeConfigurer> extends Abstr @Override public void configure(H http) throws Exception { - J2eePreAuthenticatedProcessingFilter filter = getFilter(http - .getAuthenticationManager()); + J2eePreAuthenticatedProcessingFilter filter = getFilter(http.getSharedObject(AuthenticationManager.class)); http.addFilter(filter); } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurer.java index b57e187e21..4d4eead13e 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurer.java @@ -17,6 +17,7 @@ package org.springframework.security.config.annotation.web.configurers; import java.util.UUID; +import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.RememberMeAuthenticationProvider; import org.springframework.security.config.annotation.web.HttpSecurityBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -64,7 +65,7 @@ import org.springframework.security.web.authentication.ui.DefaultLoginPageViewFi * The following shared objects are used: * *
      - *
    • {@link HttpSecurity#getAuthenticationManager()}
    • + *
    • {@link AuthenticationManager}
    • *
    • {@link UserDetailsService} if no {@link #userDetailsService(UserDetailsService)} was specified.
    • *
    • {@link DefaultLoginPageViewFilter} - if present will be populated with information from the configuration
    • *
    @@ -210,7 +211,7 @@ public final class RememberMeConfigurer> extend @Override public void configure(H http) throws Exception { RememberMeAuthenticationFilter rememberMeFilter = new RememberMeAuthenticationFilter( - http.getAuthenticationManager(), rememberMeServices); + http.getSharedObject(AuthenticationManager.class), rememberMeServices); if (authenticationSuccessHandler != null) { rememberMeFilter .setAuthenticationSuccessHandler(authenticationSuccessHandler); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ServletApiConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ServletApiConfigurer.java index e309923032..c9812a0abd 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ServletApiConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/ServletApiConfigurer.java @@ -19,6 +19,7 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; +import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.web.HttpSecurityBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.core.context.SecurityContext; @@ -67,7 +68,7 @@ public final class ServletApiConfigurer> extend @Override @SuppressWarnings("unchecked") public void configure(H http) throws Exception { - securityContextRequestFilter.setAuthenticationManager(http.getAuthenticationManager()); + securityContextRequestFilter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class)); ExceptionHandlingConfigurer exceptionConf = http.getConfigurer(ExceptionHandlingConfigurer.class); AuthenticationEntryPoint authenticationEntryPoint = exceptionConf == null ? null : exceptionConf.getAuthenticationEntryPoint(http); securityContextRequestFilter.setAuthenticationEntryPoint(authenticationEntryPoint); diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/X509Configurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/X509Configurer.java index 66ab860b93..45eb3e23a5 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/X509Configurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/X509Configurer.java @@ -163,7 +163,7 @@ public final class X509Configurer> extends Abst @Override public void configure(H http) throws Exception { - X509AuthenticationFilter filter = getFilter(http.getAuthenticationManager()); + X509AuthenticationFilter filter = getFilter(http.getSharedObject(AuthenticationManager.class)); http.addFilter(filter); } diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java index a202608d25..fb3ae2ab39 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/configurers/openid/OpenIDLoginConfigurer.java @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletRequest; import org.openid4java.consumer.ConsumerException; import org.openid4java.consumer.ConsumerManager; import org.springframework.security.authentication.AuthenticationDetailsSource; +import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.web.HttpSecurityBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -110,7 +111,7 @@ import org.springframework.security.web.util.RequestMatcher; * The following shared objects are used: * *
      - *
    • {@link HttpSecurity#getAuthenticationManager()}
    • + *
    • {@link AuthenticationManager}
    • *
    • {@link RememberMeServices} - is optionally used. See * {@link RememberMeConfigurer}
    • *
    • {@link SessionAuthenticationStrategy} - is optionally used. See