use of com.webauthn4j.springframework.security.authenticator.WebAuthnAuthenticatorService in project webauthn4j-spring-security by webauthn4j.
the class AssertionOptionsProviderImplTest method getRpId_with_rpIdProvider.
@Test
public void getRpId_with_rpIdProvider() {
RpIdProvider rpIdProvider = (HttpServletRequest) -> "example.com";
WebAuthnAuthenticatorService authenticatorService = mock(WebAuthnAuthenticatorService.class);
ChallengeRepository challengeRepository = mock(ChallengeRepository.class);
AssertionOptionsProviderImpl optionsProvider = new AssertionOptionsProviderImpl(rpIdProvider, authenticatorService, challengeRepository);
MockHttpServletRequest request = new MockHttpServletRequest();
assertThat(optionsProvider.getRpId(request)).isEqualTo("example.com");
}
use of com.webauthn4j.springframework.security.authenticator.WebAuthnAuthenticatorService in project webauthn4j-spring-security by webauthn4j.
the class AttestationOptionsProviderImplTest method getAttestationOptions_test.
@Test
public void getAttestationOptions_test() {
Challenge challenge = new DefaultChallenge();
byte[] credentialId = new byte[] { 0x01, 0x23, 0x45 };
Set<AuthenticatorTransport> transports = Collections.singleton(AuthenticatorTransport.INTERNAL);
RpIdProviderImpl rpIdProvider = new RpIdProviderImpl();
WebAuthnAuthenticatorService authenticatorService = mock(WebAuthnAuthenticatorService.class);
WebAuthnAuthenticator authenticator = mock(WebAuthnAuthenticator.class, RETURNS_DEEP_STUBS);
when(authenticator.getTransports()).thenReturn(transports);
List<WebAuthnAuthenticator> authenticators = Collections.singletonList(authenticator);
ChallengeRepository challengeRepository = mock(ChallengeRepository.class);
MockHttpServletRequest mockRequest = new MockHttpServletRequest();
mockRequest.setServerName("example.com");
when(authenticatorService.loadAuthenticatorsByUserPrincipal(any())).thenReturn(authenticators);
when(authenticator.getAttestedCredentialData().getCredentialId()).thenReturn(credentialId);
when(challengeRepository.loadOrGenerateChallenge(mockRequest)).thenReturn(challenge);
AttestationOptionsProviderImpl optionsProvider = new AttestationOptionsProviderImpl(rpIdProvider, authenticatorService, challengeRepository);
optionsProvider.setRpName("rpName");
optionsProvider.setPubKeyCredParams(Collections.singletonList(new PublicKeyCredentialParameters(PublicKeyCredentialType.PUBLIC_KEY, COSEAlgorithmIdentifier.ES256)));
optionsProvider.setRegistrationTimeout(10000L);
optionsProvider.setRegistrationExtensions(new AuthenticationExtensionsClientInputs<>());
AttestationOptions attestationOptions = optionsProvider.getAttestationOptions(mockRequest, new UsernamePasswordAuthenticationToken("username", null));
assertThat(attestationOptions.getRp().getId()).isEqualTo("example.com");
assertThat(attestationOptions.getRp().getName()).isEqualTo("rpName");
assertThat(attestationOptions.getUser()).isEqualTo(new PublicKeyCredentialUserEntity("username".getBytes(), "username", "username"));
assertThat(attestationOptions.getChallenge()).isEqualTo(challenge);
assertThat(attestationOptions.getPubKeyCredParams()).isEqualTo(Collections.singletonList(new PublicKeyCredentialParameters(PublicKeyCredentialType.PUBLIC_KEY, COSEAlgorithmIdentifier.ES256)));
assertThat(attestationOptions.getTimeout()).isEqualTo(10000L);
assertThat(attestationOptions.getExcludeCredentials()).containsExactly(new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY, credentialId, transports));
assertThat(attestationOptions.getExtensions()).isEqualTo(new AuthenticationExtensionsClientInputs<>());
}
use of com.webauthn4j.springframework.security.authenticator.WebAuthnAuthenticatorService in project webauthn4j-spring-security by webauthn4j.
the class AttestationOptionsProviderImplTest method getRpId_with_rpIdProvider.
@Test
public void getRpId_with_rpIdProvider() {
RpIdProvider rpIdProvider = (HttpServletRequest) -> "example.com";
WebAuthnAuthenticatorService authenticatorService = mock(WebAuthnAuthenticatorService.class);
ChallengeRepository challengeRepository = mock(ChallengeRepository.class);
AttestationOptionsProviderImpl optionsProvider = new AttestationOptionsProviderImpl(rpIdProvider, authenticatorService, challengeRepository);
MockHttpServletRequest request = new MockHttpServletRequest();
assertThat(optionsProvider.getRpId(request)).isEqualTo("example.com");
}
use of com.webauthn4j.springframework.security.authenticator.WebAuthnAuthenticatorService in project webauthn4j-spring-security by webauthn4j.
the class AttestationOptionsProviderImplTest method getAttestationOptions_with_non_existing_principal_test.
@Test
public void getAttestationOptions_with_non_existing_principal_test() {
Challenge challenge = new DefaultChallenge();
RpIdProviderImpl rpIdProvider = new RpIdProviderImpl();
WebAuthnAuthenticatorService authenticatorService = mock(WebAuthnAuthenticatorService.class);
ChallengeRepository challengeRepository = mock(ChallengeRepository.class);
MockHttpServletRequest mockRequest = new MockHttpServletRequest();
mockRequest.setServerName("example.com");
when(authenticatorService.loadAuthenticatorsByUserPrincipal(any())).thenThrow(new PrincipalNotFoundException("dummy"));
when(challengeRepository.loadOrGenerateChallenge(mockRequest)).thenReturn(challenge);
AttestationOptionsProviderImpl optionsProvider = new AttestationOptionsProviderImpl(rpIdProvider, authenticatorService, challengeRepository);
optionsProvider.setRpName("rpName");
optionsProvider.setPubKeyCredParams(Collections.singletonList(new PublicKeyCredentialParameters(PublicKeyCredentialType.PUBLIC_KEY, COSEAlgorithmIdentifier.ES256)));
optionsProvider.setRegistrationTimeout(10000L);
optionsProvider.setRegistrationExtensions(new AuthenticationExtensionsClientInputs<>());
AttestationOptions attestationOptions = optionsProvider.getAttestationOptions(mockRequest, new UsernamePasswordAuthenticationToken("username", null));
assertThat(attestationOptions.getRp().getId()).isEqualTo("example.com");
assertThat(attestationOptions.getRp().getName()).isEqualTo("rpName");
assertThat(attestationOptions.getUser()).isEqualTo(new PublicKeyCredentialUserEntity("username".getBytes(), "username", "username"));
assertThat(attestationOptions.getChallenge()).isEqualTo(challenge);
assertThat(attestationOptions.getPubKeyCredParams()).isEqualTo(Collections.singletonList(new PublicKeyCredentialParameters(PublicKeyCredentialType.PUBLIC_KEY, COSEAlgorithmIdentifier.ES256)));
assertThat(attestationOptions.getTimeout()).isEqualTo(10000L);
assertThat(attestationOptions.getExcludeCredentials()).isEmpty();
assertThat(attestationOptions.getExtensions()).isEqualTo(new AuthenticationExtensionsClientInputs<>());
}
use of com.webauthn4j.springframework.security.authenticator.WebAuthnAuthenticatorService in project webauthn4j-spring-security by webauthn4j.
the class AttestationOptionsProviderImplTest method getRpId_with_static_rpId.
@Test
public void getRpId_with_static_rpId() {
WebAuthnAuthenticatorService authenticatorService = mock(WebAuthnAuthenticatorService.class);
ChallengeRepository challengeRepository = mock(ChallengeRepository.class);
AttestationOptionsProviderImpl optionsProvider = new AttestationOptionsProviderImpl(authenticatorService, challengeRepository);
optionsProvider.setRpId("example.com");
MockHttpServletRequest request = new MockHttpServletRequest();
assertThat(optionsProvider.getRpId(request)).isEqualTo("example.com");
}
Aggregations