@ -12,7 +12,6 @@
@@ -12,7 +12,6 @@
* See the License for the specific language governing permissions and
* limitations under the License .
* /
package net.sf.acegisecurity.ui.webapp ;
import net.sf.acegisecurity.AuthenticationException ;
@ -26,6 +25,7 @@ import org.apache.commons.logging.Log;
@@ -26,6 +25,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory ;
import org.springframework.beans.factory.InitializingBean ;
import org.springframework.util.Assert ;
import java.io.IOException ;
@ -44,7 +44,7 @@ import javax.servlet.http.HttpServletResponse;
@@ -44,7 +44,7 @@ import javax.servlet.http.HttpServletResponse;
* holds the location of the login form , relative to the web app context path ,
* and is used to commence a redirect to that form .
* < / p >
*
*
* < p >
* By setting the < em > forceHttps < / em > property to true , you may configure the
* class to force the protocol used for the login form to be
@ -57,23 +57,17 @@ import javax.servlet.http.HttpServletResponse;
@@ -57,23 +57,17 @@ import javax.servlet.http.HttpServletResponse;
*
* @author Ben Alex
* @author colin sampaleanu
* @author Omri Spector
* @version $Id$
* /
public class AuthenticationProcessingFilterEntryPoint
implements AuthenticationEntryPoint , InitializingBean {
//~ Static fields/initializers =============================================
private static final Log logger = LogFactory . getLog ( AuthenticationProcessingFilterEntryPoint . class ) ;
//~ Instance fields ========================================================
private PortMapper portMapper = new PortMapperImpl ( ) ;
private PortResolver portResolver = new PortResolverImpl ( ) ;
private String loginFormUrl ;
private boolean forceHttps = false ;
//~ Methods ================================================================
/ * *
* Set to true to force login form access to be via https . If this value is
* ture ( the default is false ) , and the incoming request for the protected
@ -122,7 +116,7 @@ public class AuthenticationProcessingFilterEntryPoint
@@ -122,7 +116,7 @@ public class AuthenticationProcessingFilterEntryPoint
}
public void afterPropertiesSet ( ) throws Exception {
Assert . hasLength ( loginFormUrl , "loginFormUrl must be specified" ) ;
Assert . hasLength ( loginFormUrl , "loginFormUrl must be specified" ) ;
Assert . notNull ( portMapper , "portMapper must be specified" ) ;
Assert . notNull ( portResolver , "portResolver must be specified" ) ;
}
@ -136,7 +130,11 @@ public class AuthenticationProcessingFilterEntryPoint
@@ -136,7 +130,11 @@ public class AuthenticationProcessingFilterEntryPoint
int serverPort = portResolver . getServerPort ( request ) ;
String contextPath = req . getContextPath ( ) ;
boolean includePort = true ;
boolean inHttp = "http" . equals ( scheme . toLowerCase ( ) ) ;
boolean inHttps = "https" . equals ( scheme . toLowerCase ( ) ) ;
boolean includePort = ( ( inHttp & & ( serverPort = = 80 ) ) | |
( inHttps & & ( serverPort = = 443 ) ) ) ;
if ( "http" . equals ( scheme . toLowerCase ( ) ) & & ( serverPort = = 80 ) ) {
includePort = false ;
@ -146,11 +144,9 @@ public class AuthenticationProcessingFilterEntryPoint
@@ -146,11 +144,9 @@ public class AuthenticationProcessingFilterEntryPoint
includePort = false ;
}
String redirectUrl = scheme + "://" + serverName
+ ( ( includePort ) ? ( ":" + serverPort ) : "" ) + contextPath
+ loginFormUrl ;
String redirectUrl = contextPath + loginFormUrl ;
if ( forceHttps & & req . getScheme ( ) . equals ( "http" ) ) {
if ( forceHttps & & inHttp ) {
Integer httpPort = new Integer ( portResolver . getServerPort ( request ) ) ;
Integer httpsPort = ( Integer ) portMapper . lookupHttpsPort ( httpPort ) ;
@ -161,9 +157,9 @@ public class AuthenticationProcessingFilterEntryPoint
@@ -161,9 +157,9 @@ public class AuthenticationProcessingFilterEntryPoint
includePort = true ;
}
redirectUrl = "https://" + serverName
+ ( ( includePort ) ? ( ":" + httpsPort ) : "" ) + contextPath
+ loginFormUrl ;
redirectUrl = "https://" + serverName +
( ( includePort ) ? ( ":" + httpsPort ) : "" ) + contextPath +
loginFormUrl ;
}
}
@ -171,7 +167,7 @@ public class AuthenticationProcessingFilterEntryPoint
@@ -171,7 +167,7 @@ public class AuthenticationProcessingFilterEntryPoint
logger . debug ( "Redirecting to: " + redirectUrl ) ;
}
( ( HttpServletResponse ) response ) . sendRedirect ( ( ( HttpServletResponse ) response )
. encodeRedirectURL ( redirectUrl ) ) ;
( ( HttpServletResponse ) response ) . sendRedirect ( ( ( HttpServletResponse ) response ) . encodeRedirectURL (
redirectUrl ) ) ;
}
}