diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/keycloak/licenses.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/keycloak/licenses.xml index 6433eb59cc..acd2e51caf 100644 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/keycloak/licenses.xml +++ b/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/keycloak/licenses.xml @@ -521,22 +521,22 @@ com.webauthn4j webauthnj4-core - 0.10.2.RELEASE + 0.12.0.RELEASE Apache Software License 2.0 - https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.10.2.RELEASE/LICENSE.txt + https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.12.0.RELEASE/LICENSE.txt com.webauthn4j webauthnj4-util - 0.10.2.RELEASE + 0.12.0.RELEASE Apache Software License 2.0 - https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.10.2.RELEASE/LICENSE.txt + https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.12.0.RELEASE/LICENSE.txt diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/rh-sso/licenses.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/rh-sso/licenses.xml index 49b23becab..61742a9036 100644 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/rh-sso/licenses.xml +++ b/distribution/feature-packs/server-feature-pack/src/main/resources/licenses/rh-sso/licenses.xml @@ -525,7 +525,7 @@ Apache Software License 2.0 - https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.10.2.RELEASE/LICENSE.txt + https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.12.0.RELEASE/LICENSE.txt @@ -536,7 +536,7 @@ Apache Software License 2.0 - https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.10.2.RELEASE/LICENSE.txt + https://raw.githubusercontent.com/webauthn4j/webauthn4j/0.12.0.RELEASE/LICENSE.txt diff --git a/pom.xml b/pom.xml index 1d01b52028..9826381e01 100755 --- a/pom.xml +++ b/pom.xml @@ -168,7 +168,7 @@ 2.2.0.RELEASE - 0.10.2.RELEASE + 0.12.0.RELEASE 2.0.0 diff --git a/services/src/main/java/org/keycloak/authentication/requiredactions/WebAuthnRegister.java b/services/src/main/java/org/keycloak/authentication/requiredactions/WebAuthnRegister.java index 1f408b8cab..a09b41a1a2 100644 --- a/services/src/main/java/org/keycloak/authentication/requiredactions/WebAuthnRegister.java +++ b/services/src/main/java/org/keycloak/authentication/requiredactions/WebAuthnRegister.java @@ -26,6 +26,7 @@ import java.util.stream.Collectors; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; +import com.webauthn4j.WebAuthnRegistrationManager; import org.jboss.logging.Logger; import org.keycloak.WebAuthnConstants; import org.keycloak.authentication.CredentialRegistrator; @@ -42,8 +43,6 @@ import org.keycloak.credential.WebAuthnCredentialProviderFactory; import org.keycloak.crypto.Algorithm; import org.keycloak.events.Details; import org.keycloak.events.Errors; -import org.keycloak.forms.login.LoginFormsProvider; -import org.keycloak.models.Constants; import org.keycloak.models.KeycloakSession; import org.keycloak.models.UserModel; import org.keycloak.models.WebAuthnPolicy; @@ -68,7 +67,6 @@ import com.webauthn4j.validator.attestation.statement.packed.PackedAttestationSt import com.webauthn4j.validator.attestation.statement.tpm.TPMAttestationStatementValidator; import com.webauthn4j.validator.attestation.statement.u2f.FIDOU2FAttestationStatementValidator; import com.webauthn4j.validator.attestation.trustworthiness.certpath.CertPathTrustworthinessValidator; -import com.webauthn4j.validator.attestation.trustworthiness.ecdaa.DefaultECDAATrustworthinessValidator; import com.webauthn4j.validator.attestation.trustworthiness.self.DefaultSelfAttestationTrustworthinessValidator; import org.keycloak.models.credential.WebAuthnCredentialModel; @@ -208,12 +206,12 @@ public class WebAuthnRegister implements RequiredActionProvider, CredentialRegis RegistrationRequest registrationRequest = new RegistrationRequest(attestationObject, clientDataJSON); RegistrationParameters registrationParameters = new RegistrationParameters(serverProperty, isUserVerificationRequired); - WebAuthnManager webAuthnManager = createWebAuthnManager(); + WebAuthnRegistrationManager webAuthnRegistrationManager = createWebAuthnRegistrationManager(); try { // parse - RegistrationData registrationData = webAuthnManager.parse(registrationRequest); + RegistrationData registrationData = webAuthnRegistrationManager.parse(registrationRequest); // validate - webAuthnManager.validate(registrationData, registrationParameters); + webAuthnRegistrationManager.validate(registrationData, registrationParameters); showInfoAfterWebAuthnApiCreate(registrationData); @@ -252,8 +250,8 @@ public class WebAuthnRegister implements RequiredActionProvider, CredentialRegis } } - private WebAuthnManager createWebAuthnManager() { - return new WebAuthnManager( + private WebAuthnRegistrationManager createWebAuthnRegistrationManager() { + return new WebAuthnRegistrationManager( Arrays.asList( new NoneAttestationStatementValidator(), new PackedAttestationStatementValidator(), @@ -262,10 +260,8 @@ public class WebAuthnRegister implements RequiredActionProvider, CredentialRegis new AndroidSafetyNetAttestationStatementValidator(), new FIDOU2FAttestationStatementValidator() ), this.certPathtrustValidator, - new DefaultECDAATrustworthinessValidator(), new DefaultSelfAttestationTrustworthinessValidator(), Collections.emptyList(), // Custom Registration Validator is not supported - Collections.emptyList(), // Custom Authentication Validator is not supported new ObjectConverter() ); } diff --git a/services/src/main/java/org/keycloak/credential/WebAuthnCredentialProvider.java b/services/src/main/java/org/keycloak/credential/WebAuthnCredentialProvider.java index ac9a257955..c9736d8644 100644 --- a/services/src/main/java/org/keycloak/credential/WebAuthnCredentialProvider.java +++ b/services/src/main/java/org/keycloak/credential/WebAuthnCredentialProvider.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import com.webauthn4j.WebAuthnAuthenticationManager; import com.webauthn4j.converter.util.ObjectConverter; import org.jboss.logging.Logger; import org.keycloak.authentication.requiredactions.WebAuthnRegisterFactory; @@ -167,7 +168,7 @@ public class WebAuthnCredentialProvider implements CredentialProvider auths = getWebAuthnCredentialModelList(realm, user); - WebAuthnManager webAuthnManager = WebAuthnManager.createNonStrictWebAuthnManager(); // not special setting is needed for authentication's validation. + WebAuthnAuthenticationManager webAuthnAuthenticationManager = new WebAuthnAuthenticationManager(); AuthenticationData authenticationData = null; try { @@ -182,14 +183,14 @@ public class WebAuthnCredentialProvider implements CredentialProvider