use of com.webauthn4j.springframework.security.webauthn.sample.domain.entity.AuthenticatorEntity in project webauthn4j-spring-security by webauthn4j.
the class AppSpecificMapper method mapForCreate.
private AuthenticatorEntity mapForCreate(AuthenticatorForm authenticatorForm) {
AuthenticatorEntity authenticatorEntity = new AuthenticatorEntity();
authenticatorEntity.setName(authenticatorForm.getName());
authenticatorEntity.setAttestationStatement(authenticatorForm.getAttestationObject().getAttestationObject().getAttestationStatement());
authenticatorEntity.setAttestedCredentialData(authenticatorForm.getAttestationObject().getAttestationObject().getAuthenticatorData().getAttestedCredentialData());
return authenticatorEntity;
}
use of com.webauthn4j.springframework.security.webauthn.sample.domain.entity.AuthenticatorEntity in project webauthn4j-spring-security by webauthn4j.
the class AppSpecificMapper method mapToAuthenticatorListForUpdate.
private List<AuthenticatorEntity> mapToAuthenticatorListForUpdate(List<AuthenticatorForm> authenticatorForms, List<AuthenticatorEntity> authenticatorEntities) {
int[] sortedKeptIds = authenticatorForms.stream().filter(authenticator -> authenticator.getId() != null).mapToInt(AuthenticatorForm::getId).sorted().toArray();
for (AuthenticatorForm authenticatorForm : authenticatorForms) {
Integer id = authenticatorForm.getId();
// addExtension new authenticator
if (id == null) {
authenticatorEntities.add(mapForCreate(authenticatorForm));
} else // update existing authenticator
{
AuthenticatorEntity correspondingAuthenticatorEntity = authenticatorEntities.stream().filter(item -> item.getId().equals(id)).findFirst().orElseThrow(() -> new WebAuthnSampleEntityNotFoundException("Corresponding authenticator is not found."));
mapForUpdate(authenticatorForm, correspondingAuthenticatorEntity);
}
}
// delete authenticatorEntities if it is not included in authenticatorForms
authenticatorEntities.removeIf(authenticatorEntity -> {
Integer id = authenticatorEntity.getId();
if (id == null) {
return false;
}
return Arrays.binarySearch(sortedKeptIds, id) < 0;
});
return authenticatorEntities;
}
use of com.webauthn4j.springframework.security.webauthn.sample.domain.entity.AuthenticatorEntity in project webauthn4j-spring-security by webauthn4j.
the class AuthenticatorManagerImpl method updateCounter.
@Override
public void updateCounter(byte[] credentialId, long counter) throws CredentialIdNotFoundException {
AuthenticatorEntity authenticatorEntity = authenticatorEntityRepository.findOneByCredentialId(credentialId).orElseThrow(() -> new CredentialIdNotFoundException("AuthenticatorEntity not found"));
authenticatorEntity.setCounter(counter);
}
use of com.webauthn4j.springframework.security.webauthn.sample.domain.entity.AuthenticatorEntity in project webauthn4j-spring-security by webauthn4j.
the class WithMockWebAuthnUserSecurityContextFactory method createSecurityContext.
/**
* Create a {@link SecurityContext} given an Annotation.
*
* @param user the {@link WithMockWebAuthnUser} to create the {@link SecurityContext}
* from. Cannot be null.
* @return the {@link SecurityContext} to use. Cannot be null.
*/
@Override
public SecurityContext createSecurityContext(WithMockWebAuthnUser user) {
SecurityContext context = SecurityContextHolder.createEmptyContext();
List<AuthorityEntity> authorities = Arrays.stream(user.authorities()).map((name) -> new AuthorityEntity(null, name)).collect(Collectors.toList());
List<GroupEntity> groups = Arrays.stream(user.groups()).map(GroupEntity::new).collect(Collectors.toList());
List<AuthenticatorEntity> authenticatorEntities = Arrays.stream(user.authenticators()).map((name) -> {
AuthenticatorEntity authenticatorEntity = new AuthenticatorEntity();
authenticatorEntity.setName(name);
return authenticatorEntity;
}).collect(Collectors.toList());
UserEntity principal = new UserEntity();
principal.setId(user.id());
principal.setUserHandle(Base64UrlUtil.decode(user.userHandleBase64Url()));
principal.setFirstName(user.firstName());
principal.setLastName(user.lastName());
principal.setEmailAddress(user.emailAddress());
principal.setGroups(groups);
principal.setAuthorities(authorities);
principal.setAuthenticators(authenticatorEntities);
principal.setLocked(user.locked());
WebAuthnAuthenticationRequest request = mock(WebAuthnAuthenticationRequest.class);
Authentication auth = new WebAuthnAuthenticationToken(principal, request, principal.getAuthorities());
context.setAuthentication(auth);
return context;
}
Aggregations