From 56e86dd36f575595dfb40def92776e08f3ddec8f Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Wed, 6 Jul 2011 20:50:25 +0100 Subject: [PATCH] Adding assertions on constructor arg values. --- .../security/access/vote/AbstractAccessDecisionManager.java | 1 + .../security/authentication/ProviderManager.java | 6 ++++++ .../security/web/access/ExceptionTranslationFilter.java | 2 ++ .../rememberme/AbstractRememberMeServices.java | 4 +++- .../security/web/savedrequest/RequestCacheAwareFilter.java | 2 ++ .../security/web/session/SessionManagementFilter.java | 2 ++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java b/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java index fe922c1fcb..9e824af895 100644 --- a/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java +++ b/core/src/main/java/org/springframework/security/access/vote/AbstractAccessDecisionManager.java @@ -54,6 +54,7 @@ public abstract class AbstractAccessDecisionManager implements AccessDecisionMan } protected AbstractAccessDecisionManager(List decisionVoters) { + Assert.notEmpty(decisionVoters, "A list of AccessDecisionVoters is required"); this.decisionVoters = decisionVoters; } diff --git a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java index d928fa168e..4cf0926eda 100644 --- a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java +++ b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java @@ -100,13 +100,19 @@ public class ProviderManager implements AuthenticationManager, MessageSourceAwar } public ProviderManager(List providers, AuthenticationManager parent) { + Assert.notNull(providers, "providers list cannot be null"); this.providers = providers; this.parent = parent; + checkState(); } //~ Methods ======================================================================================================== public void afterPropertiesSet() throws Exception { + checkState(); + } + + private void checkState() { if (parent == null && providers.isEmpty()) { throw new IllegalArgumentException("A parent AuthenticationManager or a list " + "of AuthenticationProviders is required"); diff --git a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java index 6928977614..436731f851 100644 --- a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java +++ b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java @@ -91,6 +91,8 @@ public class ExceptionTranslationFilter extends GenericFilterBean { } public ExceptionTranslationFilter(AuthenticationEntryPoint authenticationEntryPoint, RequestCache requestCache) { + Assert.notNull(authenticationEntryPoint, "authenticationEntryPoint cannot be null"); + Assert.notNull(requestCache, "requestCache cannot be null"); this.authenticationEntryPoint = authenticationEntryPoint; this.requestCache = requestCache; } diff --git a/web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java b/web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java index 2f5f8b4660..ffe38b217b 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java +++ b/web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java @@ -60,13 +60,15 @@ public abstract class AbstractRememberMeServices implements RememberMeServices, private GrantedAuthoritiesMapper authoritiesMapper = new NullAuthoritiesMapper(); /** - * @deprecated Use cosntructor injection + * @deprecated Use constructor injection */ @Deprecated protected AbstractRememberMeServices() { } protected AbstractRememberMeServices(String key, UserDetailsService userDetailsService) { + Assert.hasLength(key, "key cannot be empty or null"); + Assert.notNull(userDetailsService, "UserDetailsService cannot be null"); this.key = key; this.userDetailsService = userDetailsService; } diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java index 39ee015234..6087c8756e 100644 --- a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java +++ b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java @@ -9,6 +9,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.util.Assert; import org.springframework.web.filter.GenericFilterBean; /** @@ -31,6 +32,7 @@ public class RequestCacheAwareFilter extends GenericFilterBean { } public RequestCacheAwareFilter(RequestCache requestCache) { + Assert.notNull(requestCache, "requestCache cannot be null"); this.requestCache = requestCache; } diff --git a/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java b/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java index b9971ea822..55da4d9c2c 100644 --- a/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java +++ b/web/src/main/java/org/springframework/security/web/session/SessionManagementFilter.java @@ -52,6 +52,8 @@ public class SessionManagementFilter extends GenericFilterBean { } public SessionManagementFilter(SecurityContextRepository securityContextRepository, SessionAuthenticationStrategy sessionStrategy) { + Assert.notNull(securityContextRepository, "SecurityContextRepository cannot be null"); + Assert.notNull(sessionStrategy, "SessionAuthenticationStrategy cannot be null"); this.securityContextRepository = securityContextRepository; this.sessionStrategy = sessionStrategy; }