diff --git a/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java b/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java index 792e6cc33c..cbc34718d4 100644 --- a/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java +++ b/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java @@ -12,7 +12,7 @@ import org.springframework.security.Authentication; import org.springframework.security.AuthenticationTrustResolver; import org.springframework.security.AuthenticationTrustResolverImpl; import org.springframework.security.concurrent.SessionRegistry; -import org.springframework.security.context.HttpSessionContextIntegrationFilter; +import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContext; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.util.SessionUtils; @@ -20,10 +20,10 @@ import org.springframework.security.util.SessionUtils; /** * Detects that a user has been authenticated since the start of the request and starts a new session. *
- * This is essentially a generalization of the functionality that was implemented for SEC-399.
- * Additionally, it will update the configured SessionRegistry if one is in use, thus preventing problems when used
- * with Spring Security's concurrent session control.
- *
+ * This is essentially a generalization of the functionality that was implemented for SEC-399.
+ * Additionally, it will update the configured SessionRegistry if one is in use, thus preventing problems when used
+ * with Spring Security's concurrent session control.
+ *
* @author Martin Algesten
* @author Luke Taylor
* @since 2.0
@@ -32,18 +32,18 @@ public class SessionFixationProtectionFilter extends SpringSecurityFilter {
//~ Static fields/initializers =====================================================================================
static final String FILTER_APPLIED = "__spring_security_session_fixation_filter_applied";
-
+
//~ Instance fields ================================================================================================
private SessionRegistry sessionRegistry;
-
+
/**
* Indicates that the session attributes of the session to be invalidated
* should be migrated to the new session. Defaults to true.
*/
- private boolean migrateSessionAttributes = true;
+ private boolean migrateSessionAttributes = true;
- private AuthenticationTrustResolver authenticationTrustResolver = new AuthenticationTrustResolverImpl();
+ private AuthenticationTrustResolver authenticationTrustResolver = new AuthenticationTrustResolverImpl();
protected void doFilterHttp(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws IOException, ServletException {
@@ -52,13 +52,13 @@ public class SessionFixationProtectionFilter extends SpringSecurityFilter {
chain.doFilter(request, response);
return;
}
-
+
request.setAttribute(FILTER_APPLIED, Boolean.TRUE);
HttpSession session = request.getSession();
- SecurityContext sessionSecurityContext =
- (SecurityContext) session.getAttribute(HttpSessionContextIntegrationFilter.SPRING_SECURITY_CONTEXT_KEY);
-
+ SecurityContext sessionSecurityContext =
+ (SecurityContext) session.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
+
if (sessionSecurityContext == null && isAuthenticated()) {
// The user has been authenticated during the current request, so do the session migration
startNewSessionIfRequired(request, response);
@@ -66,32 +66,32 @@ public class SessionFixationProtectionFilter extends SpringSecurityFilter {
chain.doFilter(request, response);
}
-
+
private boolean isAuthenticated() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-
- return authentication != null && !authenticationTrustResolver.isAnonymous(authentication);
+
+ return authentication != null && !authenticationTrustResolver.isAnonymous(authentication);
}
-
+
public void setMigrateSessionAttributes(boolean migrateSessionAttributes) {
this.migrateSessionAttributes = migrateSessionAttributes;
}
public void setSessionRegistry(SessionRegistry sessionRegistry) {
- this.sessionRegistry = sessionRegistry;
- }
+ this.sessionRegistry = sessionRegistry;
+ }
- public int getOrder() {
+ public int getOrder() {
return FilterChainOrder.SESSION_FIXATION_FILTER;
}
-
+
/**
* Called when the a user wasn't authenticated at the start of the request but has been during it
*
- * A new session will be created, the session attributes copied to it (if + * A new session will be created, the session attributes copied to it (if * migrateSessionAttributes is set) and the sessionRegistry updated with the new session information. */ - protected void startNewSessionIfRequired(HttpServletRequest request, HttpServletResponse response) { + protected void startNewSessionIfRequired(HttpServletRequest request, HttpServletResponse response) { SessionUtils.startNewSessionIfRequired(request, migrateSessionAttributes, sessionRegistry); } }