Explorar o código

Expose default constructor in AbstractAuthenticationFilterConfigurer

Fixes gh-4737
Joe Grandja %!s(int64=7) %!d(string=hai) anos
pai
achega
5a7466512e

+ 25 - 10
config/src/main/java/org/springframework/security/config/annotation/web/configurers/AbstractAuthenticationFilterConfigurer.java

@@ -15,11 +15,6 @@
  */
 package org.springframework.security.config.annotation.web.configurers;
 
-import java.util.Arrays;
-import java.util.Collections;
-
-import javax.servlet.http.HttpServletRequest;
-
 import org.springframework.http.MediaType;
 import org.springframework.security.authentication.AuthenticationDetailsSource;
 import org.springframework.security.authentication.AuthenticationManager;
@@ -37,16 +32,20 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti
 import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
 import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
 import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
-import org.springframework.security.web.util.matcher.RequestMatcher;
 import org.springframework.security.web.util.matcher.AndRequestMatcher;
 import org.springframework.security.web.util.matcher.MediaTypeRequestMatcher;
 import org.springframework.security.web.util.matcher.NegatedRequestMatcher;
 import org.springframework.security.web.util.matcher.RequestHeaderRequestMatcher;
+import org.springframework.security.web.util.matcher.RequestMatcher;
 import org.springframework.web.accept.ContentNegotiationStrategy;
 import org.springframework.web.accept.HeaderContentNegotiationStrategy;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.Collections;
+
 /**
- * Base class for confuring {@link AbstractAuthenticationFilterConfigurer}. This is
+ * Base class for configuring {@link AbstractAuthenticationFilterConfigurer}. This is
  * intended for internal use only.
  *
  * @see FormLoginConfigurer
@@ -62,7 +61,7 @@ import org.springframework.web.accept.HeaderContentNegotiationStrategy;
 public abstract class AbstractAuthenticationFilterConfigurer<B extends HttpSecurityBuilder<B>, T extends AbstractAuthenticationFilterConfigurer<B, T, F>, F extends AbstractAuthenticationProcessingFilter>
 		extends AbstractHttpConfigurer<T, B> {
 
-	private final F authFilter;
+	private F authFilter;
 
 	private AuthenticationDetailsSource<HttpServletRequest, ?> authenticationDetailsSource;
 
@@ -80,6 +79,13 @@ public abstract class AbstractAuthenticationFilterConfigurer<B extends HttpSecur
 
 	private String failureUrl;
 
+	/**
+	 * Creates a new instance with minimal defaults
+	 */
+	protected AbstractAuthenticationFilterConfigurer() {
+		setLoginPage("/login");
+	}
+
 	/**
 	 * Creates a new instance
 	 * @param authenticationFilter the {@link AbstractAuthenticationProcessingFilter} to
@@ -89,8 +95,8 @@ public abstract class AbstractAuthenticationFilterConfigurer<B extends HttpSecur
 	 */
 	protected AbstractAuthenticationFilterConfigurer(F authenticationFilter,
 			String defaultLoginProcessingUrl) {
+		this();
 		this.authFilter = authenticationFilter;
-		setLoginPage("/login");
 		if (defaultLoginProcessingUrl != null) {
 			loginProcessingUrl(defaultLoginProcessingUrl);
 		}
@@ -321,12 +327,21 @@ public abstract class AbstractAuthenticationFilterConfigurer<B extends HttpSecur
 	/**
 	 * Gets the Authentication Filter
 	 *
-	 * @return
+	 * @return the Authentication Filter
 	 */
 	protected final F getAuthenticationFilter() {
 		return authFilter;
 	}
 
+	/**
+	 * Sets the Authentication Filter
+	 *
+	 * @param authFilter the Authentication Filter
+	 */
+	protected final void setAuthenticationFilter(F authFilter) {
+		this.authFilter = authFilter;
+	}
+
 	/**
 	 * Gets the login page
 	 *