package org.apereo.cas.adaptors.x509.web.flow; import org.apereo.cas.adaptors.x509.authentication.principal.AbstractX509CertificateTests; import org.apereo.cas.adaptors.x509.config.X509AuthenticationConfiguration; import org.apereo.cas.web.flow.config.X509AuthenticationWebflowConfiguration; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Import; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockServletContext; import org.springframework.test.context.TestPropertySource; import org.springframework.webflow.context.servlet.ServletExternalContext; import org.springframework.webflow.execution.Action; import org.springframework.webflow.test.MockRequestContext; import java.security.cert.X509Certificate; import static org.junit.Assert.*; /** * @author Marvin S. Addison * @since 3.0.0 */ @TestPropertySource(locations = {"classpath:/x509.properties"}) @Import(value = {X509AuthenticationWebflowConfiguration.class, X509AuthenticationConfiguration.class}) public class X509CertificateCredentialsNonInteractiveActionTests extends AbstractX509CertificateTests { @Autowired @Qualifier("x509Check") private Action action; @Test public void verifyNoCredentialsResultsInError() throws Exception { final MockRequestContext context = new MockRequestContext(); context.setExternalContext(new ServletExternalContext( new MockServletContext(), new MockHttpServletRequest(), new MockHttpServletResponse())); assertEquals("error", this.action.execute(context).getId()); } @Test public void verifyCredentialsResultsInSuccess() throws Exception { final MockRequestContext context = new MockRequestContext(); final MockHttpServletRequest request = new MockHttpServletRequest(); request.setAttribute("javax.servlet.request.X509Certificate", new X509Certificate[]{VALID_CERTIFICATE}); context.setExternalContext(new ServletExternalContext( new MockServletContext(), request, new MockHttpServletResponse())); assertEquals("success", this.action.execute(context).getId()); } }