diff --git a/core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java b/core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java new file mode 100644 index 0000000000..0617440028 --- /dev/null +++ b/core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java @@ -0,0 +1,169 @@ +package org.springframework.security.ui; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.security.Authentication; +import org.springframework.security.ui.logout.LogoutHandler; +import org.springframework.security.util.RedirectUtils; +import org.springframework.security.util.UrlUtils; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; + +/** + * Base class containing the logic used by strategies which handle redirection to a URL and + * are passed an Authentication object as part of the contract. + * See {@link AuthenticationSuccessHandler} and {@link LogoutHandler}, for example. + *

+ * Uses the following logic sequence to determine how it should handle the forward/redirect + *