use of org.springframework.webflow.test.MockRequestContext in project cas by apereo.
the class PrepareMultifactorProviderSelectionActionTests method verifyOperation.
@Test
public void verifyOperation() throws Exception {
val request = new MockHttpServletRequest();
val response = new MockHttpServletResponse();
val flowSession = new MockFlowSession(new Flow(CasWebflowConfigurer.FLOW_ID_LOGIN));
flowSession.setState(new ViewState(flowSession.getDefinitionInternal(), "viewState", mock(ViewFactory.class)));
val exec = new MockFlowExecutionContext(flowSession);
val context = new MockRequestContext(exec);
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
RequestContextHolder.setRequestContext(context);
ExternalContextHolder.setExternalContext(context.getExternalContext());
val chain = new DefaultChainingMultifactorAuthenticationProvider(new DefaultMultifactorAuthenticationFailureModeEvaluator(casProperties));
val provider = new TestMultifactorAuthenticationProvider();
provider.setBypassEvaluator(new DefaultChainingMultifactorAuthenticationBypassProvider());
chain.addMultifactorAuthenticationProvider(provider);
val attributes = new LocalAttributeMap(RegisteredService.class.getName(), RegisteredServiceTestUtils.getRegisteredService());
attributes.put(MultifactorAuthenticationProvider.class.getName(), chain);
val event = new EventFactorySupport().event(this, ChainingMultifactorAuthenticationProvider.DEFAULT_IDENTIFIER, attributes);
context.setCurrentEvent(event);
assertNull(action.execute(context));
assertNotNull(WebUtils.getSelectableMultifactorAuthenticationProviders(context));
}
use of org.springframework.webflow.test.MockRequestContext in project cas by apereo.
the class ServiceTicketRequestWebflowEventResolverTests method verifyAttemptWithoutCredential.
@Test
public void verifyAttemptWithoutCredential() throws Exception {
val context = new MockRequestContext();
val request = new MockHttpServletRequest();
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
RequestContextHolder.setRequestContext(context);
ExternalContextHolder.setExternalContext(context.getExternalContext());
val tgt = new MockTicketGrantingTicket("casuser");
ticketRegistry.addTicket(tgt);
val service = RegisteredServiceTestUtils.getService("service-ticket-request");
val registeredService = RegisteredServiceTestUtils.getRegisteredService(service.getId(), Map.of());
servicesManager.save(registeredService);
WebUtils.putTicketGrantingTicketInScopes(context, tgt);
WebUtils.putServiceIntoFlowScope(context, service);
val event = serviceTicketRequestWebflowEventResolver.resolveSingle(context);
assertEquals(CasWebflowConstants.TRANSITION_ID_GENERATE_SERVICE_TICKET, event.getId());
}
use of org.springframework.webflow.test.MockRequestContext in project cas by apereo.
the class ServiceTicketRequestWebflowEventResolverTests method verifyServiceTicketRequestFailsAuthN.
@Test
public void verifyServiceTicketRequestFailsAuthN() throws Exception {
val context = new MockRequestContext();
val request = new MockHttpServletRequest();
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
RequestContextHolder.setRequestContext(context);
ExternalContextHolder.setExternalContext(context.getExternalContext());
val tgt = new MockTicketGrantingTicket("casuser");
ticketRegistry.addTicket(tgt);
val service = RegisteredServiceTestUtils.getService("service-ticket-request");
val registeredService = RegisteredServiceTestUtils.getRegisteredService(service.getId());
registeredService.setAccessStrategy(new DefaultRegisteredServiceAccessStrategy(true, true));
servicesManager.save(registeredService);
WebUtils.putTicketGrantingTicketInScopes(context, tgt);
WebUtils.putServiceIntoFlowScope(context, service);
WebUtils.putCredential(context, RegisteredServiceTestUtils.getCredentialsWithDifferentUsernameAndPassword("casuser", "badP@ass"));
val event = serviceTicketRequestWebflowEventResolver.resolveSingle(context);
assertEquals(CasWebflowConstants.TRANSITION_ID_AUTHENTICATION_FAILURE, event.getId());
}
use of org.springframework.webflow.test.MockRequestContext in project cas by apereo.
the class ServiceTicketRequestWebflowEventResolverTests method verifyServiceTicketRequestCreated.
@Test
public void verifyServiceTicketRequestCreated() throws Exception {
val context = new MockRequestContext();
val request = new MockHttpServletRequest();
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
RequestContextHolder.setRequestContext(context);
ExternalContextHolder.setExternalContext(context.getExternalContext());
val tgt = new MockTicketGrantingTicket("casuser");
ticketRegistry.addTicket(tgt);
val service = RegisteredServiceTestUtils.getService("service-ticket-request");
val registeredService = RegisteredServiceTestUtils.getRegisteredService(service.getId());
registeredService.setAccessStrategy(new DefaultRegisteredServiceAccessStrategy(true, true));
servicesManager.save(registeredService);
WebUtils.putTicketGrantingTicketInScopes(context, tgt);
WebUtils.putServiceIntoFlowScope(context, service);
WebUtils.putCredential(context, RegisteredServiceTestUtils.getCredentialsWithDifferentUsernameAndPassword("casuser", "Mellon"));
val event = serviceTicketRequestWebflowEventResolver.resolveSingle(context);
assertEquals(CasWebflowConstants.TRANSITION_ID_GENERATE_SERVICE_TICKET, event.getId());
}
use of org.springframework.webflow.test.MockRequestContext in project cas by apereo.
the class ServiceTicketRequestWebflowEventResolverTests method verifyServiceTicketRequestPrincipalMismatch.
@Test
public void verifyServiceTicketRequestPrincipalMismatch() throws Exception {
val context = new MockRequestContext();
val request = new MockHttpServletRequest();
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
RequestContextHolder.setRequestContext(context);
ExternalContextHolder.setExternalContext(context.getExternalContext());
val tgt = new MockTicketGrantingTicket("randomuser");
ticketRegistry.addTicket(tgt);
val service = RegisteredServiceTestUtils.getService("service-ticket-request");
val registeredService = RegisteredServiceTestUtils.getRegisteredService(service.getId());
registeredService.setAccessStrategy(new DefaultRegisteredServiceAccessStrategy(true, true));
servicesManager.save(registeredService);
WebUtils.putTicketGrantingTicketInScopes(context, tgt);
WebUtils.putServiceIntoFlowScope(context, service);
WebUtils.putCredential(context, RegisteredServiceTestUtils.getCredentialsWithDifferentUsernameAndPassword("casuser", "Mellon"));
assertNull(serviceTicketRequestWebflowEventResolver.resolveSingle(context));
}
Aggregations