diff --git a/core/src/test/java/org/acegisecurity/ui/x509/X509ProcessingFilterTests.java b/core/src/test/java/org/acegisecurity/ui/x509/X509ProcessingFilterTests.java new file mode 100644 index 0000000000..d6ba20eb87 --- /dev/null +++ b/core/src/test/java/org/acegisecurity/ui/x509/X509ProcessingFilterTests.java @@ -0,0 +1,116 @@ +package net.sf.acegisecurity.ui.x509; + +import junit.framework.TestCase; + +//import org.mortbay.http.*; +//import org.mortbay.jetty.servlet.*; + +import java.net.URL; +import java.io.IOException; +import java.security.cert.X509Certificate; + +import net.sf.acegisecurity.*; +import net.sf.acegisecurity.context.security.SecureContext; +import net.sf.acegisecurity.context.security.SecureContextUtils; +import net.sf.acegisecurity.context.security.SecureContextImpl; +import net.sf.acegisecurity.context.ContextHolder; +import net.sf.acegisecurity.providers.x509.X509TestUtils; +import net.sf.acegisecurity.ui.cas.CasProcessingFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.ServletException; + +/** + * @author Luke + */ +public class X509ProcessingFilterTests extends TestCase { + //~ Constructors =========================================================== + + public X509ProcessingFilterTests() { + super(); + } + + public X509ProcessingFilterTests(String arg0) { + super(arg0); + } + + //~ Methods ================================================================ + + public final void setUp() throws Exception { + super.setUp(); + } + + public void testNormalOperation() throws Exception { + MockHttpServletRequest request = new MockHttpServletRequest(null, new MockHttpSession()); + MockHttpServletResponse response = new MockHttpServletResponse(); + FilterChain chain = new MockFilterChain(); + + request.setAttribute("javax.servlet.request.X509Certificate", + new X509Certificate[] {X509TestUtils.buildTestCertificate()}); + + MockAuthenticationManager authMgr = new MockAuthenticationManager(true); + + ContextHolder.setContext(new SecureContextImpl()); + + SecureContext ctx = SecureContextUtils.getSecureContext(); + + ctx.setAuthentication(null); + + X509ProcessingFilter filter = new X509ProcessingFilter(); + + filter.setAuthenticationManager(authMgr); + filter.afterPropertiesSet(); + filter.init(null); + filter.doFilter(request, response, chain); + + Authentication result = ctx.getAuthentication(); + + assertNotNull(result); + } + + //~ Inner Classes ========================================================== + + private class MockFilterChain implements FilterChain { + public void doFilter(ServletRequest arg0, ServletResponse arg1) + throws IOException, ServletException { + // do nothing. + } + } +// public void testFilterIntegration() throws Exception { +// +// // set up server. +// HttpServer server = new HttpServer(); +// try { +// SunJsseListener listener = new SunJsseListener(); +// listener.setNeedClientAuth(true); +// listener.setPort(9443); +//// listener.setKeystore(); +// +// server.addListener(listener); +// +// // map servlet. +// HttpContext context = server.getContext("/"); +// +//// ServletHandler handler = new ServletHandler(); +//// handler.addServlet("MyServlet", "/myServlet", MyServlet.class.getName()); +//// context.addHandler(handler); +// +// // start server. +// server.start(); +// +// // test client code against url. +// URL url = new URL("http://localhost:" + 9443 + "/myServlet"); +// +// +// +// } +// finally { +// server.stop(); +// } +// } + + + +}