diff --git a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java
index 47c07761f4..b3a09c2421 100644
--- a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java
+++ b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java
@@ -15,12 +15,6 @@
package org.acegisecurity.ui.basicauth;
-import org.acegisecurity.AuthenticationException;
-
-import org.acegisecurity.ui.AuthenticationEntryPoint;
-
-import org.springframework.beans.factory.InitializingBean;
-
import java.io.IOException;
import javax.servlet.ServletException;
@@ -28,6 +22,11 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
+import org.acegisecurity.AuthenticationException;
+import org.acegisecurity.ui.AuthenticationEntryPoint;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.Ordered;
+
/**
* Used by the SecurityEnforcementFilter
to commence authentication via the {@link
@@ -39,14 +38,23 @@ import javax.servlet.http.HttpServletResponse;
* @author Ben Alex
* @version $Id$
*/
-public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
+public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered {
//~ Instance fields ================================================================================================
private String realmName;
+ private int order = Integer.MAX_VALUE; // ~ default
//~ Methods ========================================================================================================
- public void afterPropertiesSet() throws Exception {
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
+ public void afterPropertiesSet() throws Exception {
if ((realmName == null) || "".equals(realmName)) {
throw new IllegalArgumentException("realmName must be specified");
}
diff --git a/core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java
index e09c2e2fb8..30eeec6428 100644
--- a/core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java
+++ b/core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java
@@ -15,16 +15,7 @@
package org.acegisecurity.ui.cas;
-import org.acegisecurity.AuthenticationException;
-
-import org.acegisecurity.ui.AuthenticationEntryPoint;
-
-import org.springframework.beans.factory.InitializingBean;
-
-import org.springframework.util.Assert;
-
import java.io.IOException;
-
import java.net.URLEncoder;
import javax.servlet.ServletException;
@@ -33,6 +24,12 @@ import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.acegisecurity.AuthenticationException;
+import org.acegisecurity.ui.AuthenticationEntryPoint;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.Ordered;
+import org.springframework.util.Assert;
+
/**
* Used by the SecurityEnforcementFilter
to commence authentication via the JA-SIG Central
@@ -45,15 +42,24 @@ import javax.servlet.http.HttpServletResponse;
* @author Ben Alex
* @version $Id$
*/
-public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
+public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered{
//~ Instance fields ================================================================================================
private ServiceProperties serviceProperties;
private String loginUrl;
+ private int order = Integer.MAX_VALUE; // ~ default
//~ Methods ========================================================================================================
- public void afterPropertiesSet() throws Exception {
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
+ public void afterPropertiesSet() throws Exception {
Assert.hasLength(this.loginUrl, "loginUrl must be specified");
Assert.notNull(this.serviceProperties, "serviceProperties must be specified");
}
diff --git a/core/src/main/java/org/acegisecurity/ui/digestauth/DigestProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/digestauth/DigestProcessingFilterEntryPoint.java
index ffe85c6a4f..e17f0ce64a 100644
--- a/core/src/main/java/org/acegisecurity/ui/digestauth/DigestProcessingFilterEntryPoint.java
+++ b/core/src/main/java/org/acegisecurity/ui/digestauth/DigestProcessingFilterEntryPoint.java
@@ -15,17 +15,6 @@
package org.acegisecurity.ui.digestauth;
-import org.acegisecurity.AuthenticationException;
-
-import org.acegisecurity.ui.AuthenticationEntryPoint;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.beans.factory.InitializingBean;
-
import java.io.IOException;
import javax.servlet.ServletException;
@@ -33,6 +22,15 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
+import org.acegisecurity.AuthenticationException;
+import org.acegisecurity.ui.AuthenticationEntryPoint;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.Ordered;
+
/**
* Used by the SecurityEnforcementFilter
to commence authentication via the {@link
@@ -45,7 +43,7 @@ import javax.servlet.http.HttpServletResponse;
* @author Ben Alex
* @version $Id$
*/
-public class DigestProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
+public class DigestProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered {
//~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(DigestProcessingFilterEntryPoint.class);
@@ -55,10 +53,19 @@ public class DigestProcessingFilterEntryPoint implements AuthenticationEntryPoin
private String key;
private String realmName;
private int nonceValiditySeconds = 300;
+ private int order = Integer.MAX_VALUE; // ~ default
//~ Methods ========================================================================================================
- public void afterPropertiesSet() throws Exception {
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
+ public void afterPropertiesSet() throws Exception {
if ((realmName == null) || "".equals(realmName)) {
throw new IllegalArgumentException("realmName must be specified");
}
diff --git a/core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java
index 15d4c40969..88454a5c96 100644
--- a/core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java
+++ b/core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java
@@ -28,6 +28,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.Ordered;
import org.springframework.util.Assert;
@@ -56,7 +57,7 @@ import javax.servlet.http.HttpServletResponse;
* @author Omri Spector
* @version $Id$
*/
-public class AuthenticationProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
+public class AuthenticationProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered {
//~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(AuthenticationProcessingFilterEntryPoint.class);
@@ -68,10 +69,11 @@ public class AuthenticationProcessingFilterEntryPoint implements AuthenticationE
private String loginFormUrl;
private boolean forceHttps = false;
private boolean serverSideRedirect = false;
+ private int order = Integer.MAX_VALUE; // ~ default
//~ Methods ========================================================================================================
- public void afterPropertiesSet() throws Exception {
+ public void afterPropertiesSet() throws Exception {
Assert.hasLength(loginFormUrl, "loginFormUrl must be specified");
Assert.notNull(portMapper, "portMapper must be specified");
Assert.notNull(portResolver, "portResolver must be specified");
@@ -221,5 +223,14 @@ public class AuthenticationProcessingFilterEntryPoint implements AuthenticationE
public void setServerSideRedirect(boolean serverSideRedirect) {
this.serverSideRedirect = serverSideRedirect;
}
+
+
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
}
diff --git a/core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java
index fe81905cf7..2947d55a97 100644
--- a/core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java
+++ b/core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java
@@ -15,13 +15,6 @@
package org.acegisecurity.ui.x509;
-import org.acegisecurity.AuthenticationException;
-
-import org.acegisecurity.ui.AuthenticationEntryPoint;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import java.io.IOException;
import javax.servlet.ServletException;
@@ -29,45 +22,70 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
+import org.acegisecurity.AuthenticationException;
+import org.acegisecurity.ui.AuthenticationEntryPoint;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.core.Ordered;
/**
- * In the X.509 authentication case (unlike CAS, for example) the certificate will already have been extracted from
- * the request and a secure context established by the time the security-enforcement filter is invoked.
Therefore - * this class isn't actually responsible for the commencement of authentication, as it is in the case of other - * providers. It will be called if the certificate was rejected by Acegi's X509AuthenticationProvider, resulting in a - * null authentication.
- * Thecommence
method will always return an HttpServletResponse.SC_FORBIDDEN
(403
- * error).
- *
+ * In the X.509 authentication case (unlike CAS, for example) the certificate
+ * will already have been extracted from the request and a secure context
+ * established by the time the security-enforcement filter is invoked.
+ * + * Therefore this class isn't actually responsible for the commencement of + * authentication, as it is in the case of other providers. It will be called if + * the certificate was rejected by Acegi's X509AuthenticationProvider, resulting + * in a null authentication. + *
+ * Thecommence
method will always return an
+ * HttpServletResponse.SC_FORBIDDEN
(403 error).
+ *
* @author Luke Taylor
- * @version $Id$
- *
+ * @version $Id: X509ProcessingFilterEntryPoint.java 1496 2006-05-23 13:38:33Z
+ * benalex $
+ *
* @see org.acegisecurity.ui.ExceptionTranslationFilter
*/
-public class X509ProcessingFilterEntryPoint implements AuthenticationEntryPoint {
- //~ Static fields/initializers =====================================================================================
+public class X509ProcessingFilterEntryPoint implements AuthenticationEntryPoint, Ordered {
+ // ~ Static fields/initializers
+ // =====================================================================================
- private static final Log logger = LogFactory.getLog(X509ProcessingFilterEntryPoint.class);
+ private static final Log logger = LogFactory.getLog(X509ProcessingFilterEntryPoint.class);
- //~ Methods ========================================================================================================
+ // ~ instance fields
+ // =====================================================================================
+
+ private int order = Integer.MAX_VALUE; // ~ default
- /**
- * Returns a 403 error code to the client.
- *
- * @param request DOCUMENT ME!
- * @param response DOCUMENT ME!
- * @param authException DOCUMENT ME!
- *
- * @throws IOException DOCUMENT ME!
- * @throws ServletException DOCUMENT ME!
- */
- public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException)
- throws IOException, ServletException {
- if (logger.isDebugEnabled()) {
- logger.debug("X509 entry point called. Rejecting access");
- }
+ // ~ Methods
+ // ========================================================================================================
- HttpServletResponse httpResponse = (HttpServletResponse) response;
- httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Access Denied");
- }
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
+ /**
+ * Returns a 403 error code to the client.
+ *
+ * @param request DOCUMENT ME!
+ * @param response DOCUMENT ME!
+ * @param authException DOCUMENT ME!
+ *
+ * @throws IOException DOCUMENT ME!
+ * @throws ServletException DOCUMENT ME!
+ */
+ public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException)
+ throws IOException, ServletException {
+ if (logger.isDebugEnabled()) {
+ logger.debug("X509 entry point called. Rejecting access");
+ }
+
+ HttpServletResponse httpResponse = (HttpServletResponse) response;
+ httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Access Denied");
+ }
}