Search in sources :

Example 6 with YubiKeyMultifactorAuthenticationProvider

use of org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider in project cas by apereo.

the class YubiKeyAuthenticationPrepareLoginActionTests method setup.

@BeforeEach
public void setup() {
    val applicationContext = new StaticApplicationContext();
    applicationContext.refresh();
    ApplicationContextProvider.holdApplicationContext(applicationContext);
    TestMultifactorAuthenticationProvider.registerProviderIntoApplicationContext(applicationContext, new YubiKeyMultifactorAuthenticationProvider());
    ApplicationContextProvider.registerBeanIntoApplicationContext(applicationContext, MultifactorAuthenticationPrincipalResolver.identical(), UUID.randomUUID().toString());
}
Also used : lombok.val(lombok.val) YubiKeyMultifactorAuthenticationProvider(org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider) StaticApplicationContext(org.springframework.context.support.StaticApplicationContext) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 7 with YubiKeyMultifactorAuthenticationProvider

use of org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider in project cas by apereo.

the class YubiKeyAuthenticationEventExecutionPlanConfiguration method yubikeyMultifactorAuthenticationProvider.

@Bean
@RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
public MultifactorAuthenticationProvider yubikeyMultifactorAuthenticationProvider(final CasConfigurationProperties casProperties, @Qualifier("yubicoClient") final YubicoClient yubicoClient, @Qualifier("httpClient") final HttpClient httpClient, @Qualifier("yubikeyBypassEvaluator") final MultifactorAuthenticationProviderBypassEvaluator yubikeyBypassEvaluator, @Qualifier("failureModeEvaluator") final MultifactorAuthenticationFailureModeEvaluator failureModeEvaluator) {
    val yubi = casProperties.getAuthn().getMfa().getYubikey();
    val p = new YubiKeyMultifactorAuthenticationProvider(yubicoClient, httpClient);
    p.setBypassEvaluator(yubikeyBypassEvaluator);
    p.setFailureMode(yubi.getFailureMode());
    p.setFailureModeEvaluator(failureModeEvaluator);
    p.setOrder(yubi.getRank());
    p.setId(yubi.getId());
    return p;
}
Also used : lombok.val(lombok.val) YubiKeyMultifactorAuthenticationProvider(org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider) RefreshScope(org.springframework.cloud.context.config.annotation.RefreshScope) ConditionalOnMissingBean(org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean) Bean(org.springframework.context.annotation.Bean)

Example 8 with YubiKeyMultifactorAuthenticationProvider

use of org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider in project cas by apereo.

the class YubiKeyAccountCheckRegistrationActionTests method verifyActionRegister.

@Test
public void verifyActionRegister() throws Exception {
    val context = new MockRequestContext();
    val request = new MockHttpServletRequest();
    context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, new MockHttpServletResponse()));
    val authentication = CoreAuthenticationTestUtils.getAuthentication();
    WebUtils.putAuthentication(authentication, context);
    WebUtils.putMultifactorAuthenticationProviderIdIntoFlowScope(context, new YubiKeyMultifactorAuthenticationProvider());
    val registry = new ClosedYubiKeyAccountRegistry(new DenyAllYubiKeyAccountValidator());
    val action = new YubiKeyAccountCheckRegistrationAction(registry);
    assertEquals(CasWebflowConstants.TRANSITION_ID_REGISTER, action.execute(context).getId());
}
Also used : lombok.val(lombok.val) YubiKeyMultifactorAuthenticationProvider(org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) ServletExternalContext(org.springframework.webflow.context.servlet.ServletExternalContext) DenyAllYubiKeyAccountValidator(org.apereo.cas.adaptors.yubikey.DenyAllYubiKeyAccountValidator) ClosedYubiKeyAccountRegistry(org.apereo.cas.adaptors.yubikey.registry.ClosedYubiKeyAccountRegistry) MockRequestContext(org.springframework.webflow.test.MockRequestContext) MockServletContext(org.springframework.mock.web.MockServletContext) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.jupiter.api.Test)

Example 9 with YubiKeyMultifactorAuthenticationProvider

use of org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider in project cas by apereo.

the class YubiKeyAccountSaveRegistrationActionTests method verifyActionFails.

@Test
public void verifyActionFails() throws Exception {
    val context = mock(RequestContext.class);
    when(context.getMessageContext()).thenReturn(mock(MessageContext.class));
    when(context.getFlowScope()).thenReturn(new LocalAttributeMap<>());
    when(context.getRequestParameters()).thenReturn(new MockParameterMap());
    when(context.getConversationScope()).thenReturn(new LocalAttributeMap<>());
    when(context.getRequestParameters()).thenReturn(new MockParameterMap());
    val request = new MockHttpServletRequest();
    when(context.getExternalContext()).thenReturn(new ServletExternalContext(new MockServletContext(), request, new MockHttpServletResponse()));
    WebUtils.putMultifactorAuthenticationProviderIdIntoFlowScope(context, new YubiKeyMultifactorAuthenticationProvider());
    WebUtils.putAuthentication(CoreAuthenticationTestUtils.getAuthentication(), context);
    val action = new YubiKeyAccountSaveRegistrationAction(new OpenYubiKeyAccountRegistry(new AcceptAllYubiKeyAccountValidator()));
    assertEquals(CasWebflowConstants.TRANSITION_ID_ERROR, action.execute(context).getId());
}
Also used : lombok.val(lombok.val) OpenYubiKeyAccountRegistry(org.apereo.cas.adaptors.yubikey.registry.OpenYubiKeyAccountRegistry) YubiKeyMultifactorAuthenticationProvider(org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) ServletExternalContext(org.springframework.webflow.context.servlet.ServletExternalContext) MockParameterMap(org.springframework.webflow.test.MockParameterMap) MessageContext(org.springframework.binding.message.MessageContext) MockServletContext(org.springframework.mock.web.MockServletContext) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) AcceptAllYubiKeyAccountValidator(org.apereo.cas.adaptors.yubikey.AcceptAllYubiKeyAccountValidator) Test(org.junit.jupiter.api.Test)

Aggregations

YubiKeyMultifactorAuthenticationProvider (org.apereo.cas.adaptors.yubikey.YubiKeyMultifactorAuthenticationProvider)9 lombok.val (lombok.val)8 Test (org.junit.jupiter.api.Test)4 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)4 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)4 MockServletContext (org.springframework.mock.web.MockServletContext)4 ServletExternalContext (org.springframework.webflow.context.servlet.ServletExternalContext)4 AcceptAllYubiKeyAccountValidator (org.apereo.cas.adaptors.yubikey.AcceptAllYubiKeyAccountValidator)3 OpenYubiKeyAccountRegistry (org.apereo.cas.adaptors.yubikey.registry.OpenYubiKeyAccountRegistry)3 BeforeEach (org.junit.jupiter.api.BeforeEach)3 StaticApplicationContext (org.springframework.context.support.StaticApplicationContext)3 MockRequestContext (org.springframework.webflow.test.MockRequestContext)3 ConditionalOnMissingBean (org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean)2 RefreshScope (org.springframework.cloud.context.config.annotation.RefreshScope)2 Bean (org.springframework.context.annotation.Bean)2 DenyAllYubiKeyAccountValidator (org.apereo.cas.adaptors.yubikey.DenyAllYubiKeyAccountValidator)1 ClosedYubiKeyAccountRegistry (org.apereo.cas.adaptors.yubikey.registry.ClosedYubiKeyAccountRegistry)1 MessageContext (org.springframework.binding.message.MessageContext)1 MockParameterMap (org.springframework.webflow.test.MockParameterMap)1