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());
}
}