From 79cd982341581b451510dad06629e6c452fac431 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Tue, 22 Jul 2025 17:18:38 -0500 Subject: [PATCH] Extract spring-security-webauthn Closes gh-17586 --- config/spring-security-config.gradle | 3 +- webauthn/spring-security-webauthn.gradle | 39 +++++++++++++++++++ .../api/AttestationConveyancePreference.java | 0 .../AuthenticationExtensionsClientInput.java | 0 .../AuthenticationExtensionsClientInputs.java | 0 .../AuthenticationExtensionsClientOutput.java | 0 ...AuthenticationExtensionsClientOutputs.java | 0 .../api/AuthenticatorAssertionResponse.java | 0 .../webauthn/api/AuthenticatorAttachment.java | 0 .../api/AuthenticatorAttestationResponse.java | 0 .../webauthn/api/AuthenticatorResponse.java | 0 .../api/AuthenticatorSelectionCriteria.java | 0 .../webauthn/api/AuthenticatorTransport.java | 0 .../security/web/webauthn/api/Bytes.java | 0 .../webauthn/api/COSEAlgorithmIdentifier.java | 0 ...ctAuthenticationExtensionsClientInput.java | 0 .../api/CredentialPropertiesOutput.java | 0 .../web/webauthn/api/CredentialRecord.java | 0 ...leAuthenticationExtensionsClientInput.java | 0 ...eAuthenticationExtensionsClientInputs.java | 0 ...AuthenticationExtensionsClientOutputs.java | 0 .../api/ImmutableCredentialRecord.java | 0 .../webauthn/api/ImmutablePublicKeyCose.java | 0 ...mmutablePublicKeyCredentialUserEntity.java | 0 .../web/webauthn/api/PublicKeyCose.java | 0 .../web/webauthn/api/PublicKeyCredential.java | 0 .../PublicKeyCredentialCreationOptions.java | 0 .../api/PublicKeyCredentialDescriptor.java | 0 .../api/PublicKeyCredentialParameters.java | 0 .../PublicKeyCredentialRequestOptions.java | 0 .../api/PublicKeyCredentialRpEntity.java | 0 .../webauthn/api/PublicKeyCredentialType.java | 0 .../api/PublicKeyCredentialUserEntity.java | 5 ++- .../webauthn/api/ResidentKeyRequirement.java | 0 .../api/UserVerificationRequirement.java | 0 ...KeyCredentialRequestOptionsRepository.java | 0 ...blicKeyCredentialRequestOptionsFilter.java | 0 ...KeyCredentialRequestOptionsRepository.java | 0 .../WebAuthnAuthentication.java | 0 .../WebAuthnAuthenticationFilter.java | 0 .../WebAuthnAuthenticationProvider.java | 0 .../WebAuthnAuthenticationRequestToken.java | 0 .../AttestationConveyancePreferenceMixin.java | 0 ...stationConveyancePreferenceSerializer.java | 0 ...henticationExtensionsClientInputMixin.java | 0 ...cationExtensionsClientInputSerializer.java | 0 ...enticationExtensionsClientInputsMixin.java | 0 ...ationExtensionsClientInputsSerializer.java | 0 ...onExtensionsClientOutputsDeserializer.java | 0 ...nticationExtensionsClientOutputsMixin.java | 0 .../AuthenticatorAssertionResponseMixin.java | 0 .../AuthenticatorAttachmentDeserializer.java | 0 .../jackson/AuthenticatorAttachmentMixin.java | 0 .../AuthenticatorAttachmentSerializer.java | 0 ...AuthenticatorAttestationResponseMixin.java | 0 .../AuthenticatorSelectionCriteriaMixin.java | 0 .../AuthenticatorTransportDeserializer.java | 0 .../jackson/AuthenticatorTransportMixin.java | 0 .../AuthenticatorTransportSerializer.java | 0 .../web/webauthn/jackson/BytesMixin.java | 0 .../web/webauthn/jackson/BytesSerializer.java | 0 .../COSEAlgorithmIdentifierDeserializer.java | 0 .../jackson/COSEAlgorithmIdentifierMixin.java | 0 .../COSEAlgorithmIdentifierSerializer.java | 0 ...henticationExtensionsClientInputMixin.java | 0 ...cationExtensionsClientInputSerializer.java | 0 .../CredentialPropertiesOutputMixin.java | 0 .../webauthn/jackson/DurationSerializer.java | 0 ...blicKeyCredentialCreationOptionsMixin.java | 0 .../jackson/PublicKeyCredentialMixin.java | 0 ...ublicKeyCredentialRequestOptionsMixin.java | 0 .../PublicKeyCredentialTypeDeserializer.java | 0 .../jackson/PublicKeyCredentialTypeMixin.java | 0 .../PublicKeyCredentialTypeSerializer.java | 0 .../jackson/RelyingPartyPublicKeyMixin.java | 0 .../jackson/ResidentKeyRequirementMixin.java | 0 .../ResidentKeyRequirementSerializer.java | 0 .../UserVerificationRequirementMixin.java | 0 ...UserVerificationRequirementSerializer.java | 0 .../jackson/WebauthnJackson2Module.java | 0 ...icKeyCredentialCreationOptionsRequest.java | 0 ...licKeyCredentialRequestOptionsRequest.java | 0 ...utableRelyingPartyRegistrationRequest.java | 0 ...blicKeyCredentialUserEntityRepository.java | 0 .../JdbcUserCredentialRepository.java | 0 ...blicKeyCredentialUserEntityRepository.java | 0 .../MapUserCredentialRepository.java | 0 ...icKeyCredentialCreationOptionsRequest.java | 0 ...licKeyCredentialRequestOptionsRequest.java | 0 ...blicKeyCredentialUserEntityRepository.java | 0 .../RelyingPartyAuthenticationRequest.java | 0 .../management/RelyingPartyPublicKey.java | 0 .../RelyingPartyRegistrationRequest.java | 0 .../management/UserCredentialRepository.java | 0 .../WebAuthnRelyingPartyOperations.java | 0 .../Webauthn4JRelyingPartyOperations.java | 0 ...AuthnRegistrationPageGeneratingFilter.java | 0 .../webauthn/registration/HtmlTemplates.java | 0 ...eyCredentialCreationOptionsRepository.java | 0 ...licKeyCredentialCreationOptionsFilter.java | 0 ...eyCredentialCreationOptionsRepository.java | 0 .../WebAuthnRegistrationFilter.java | 0 .../api/COSEAlgorithmIdentifierTests.java | 0 .../TestAuthenticationAssertionResponses.java | 0 ...TestAuthenticatorAttestationResponses.java | 0 .../security/web/webauthn/api/TestBytes.java | 0 .../webauthn/api/TestCredentialRecords.java | 0 ...estPublicKeyCredentialCreationOptions.java | 0 ...TestPublicKeyCredentialRequestOptions.java | 0 .../TestPublicKeyCredentialUserEntities.java | 0 .../api/TestPublicKeyCredentials.java | 0 ...edentialRequestOptionsRepositoryTests.java | 0 ...eyCredentialRequestOptionsFilterTests.java | 0 .../WebAuthnAuthenticationFilterTests.java | 0 .../WebAuthnAuthenticationTests.java | 0 ...tionExtensionsClientInputJacksonTests.java | 0 .../web/webauthn/jackson/JacksonTests.java | 0 .../jackson/PublicKeyCredentialJson.java | 0 ...eyCredentialUserEntityRepositoryTests.java | 0 .../JdbcUserCredentialRepositoryTests.java | 0 ...eyCredentialUserEntityRepositoryTests.java | 0 .../MapUserCredentialRepositoryTests.java | 0 .../TestPublicKeyCredentialRpEntities.java | 0 ...Webauthn4jRelyingPartyOperationsTests.java | 0 ...RegistrationPageGeneratingFilterTests.java | 0 ...dentialCreationOptionsRepositoryTests.java | 0 ...yCredentialCreationOptionsFilterTests.java | 0 .../WebAuthnRegistrationFilterTests.java | 0 ...bAuthnRegistrationRequestJacksonTests.java | 0 129 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 webauthn/spring-security-webauthn.gradle rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutput.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutputs.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAssertionResponse.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttachment.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttestationResponse.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorResponse.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorTransport.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/CredentialPropertiesOutput.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/CredentialRecord.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientOutputs.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutableCredentialRecord.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCose.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCose.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredential.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialCreationOptions.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialDescriptor.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialParameters.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRequestOptions.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRpEntity.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialType.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java (87%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/ResidentKeyRequirement.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/api/UserVerificationRequirement.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthentication.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilter.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationProvider.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationRequestToken.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsDeserializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAssertionResponseMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentDeserializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttestationResponseMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorSelectionCriteriaMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportDeserializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/BytesMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/BytesSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierDeserializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/CredentialPropertiesOutputMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/DurationSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialCreationOptionsMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialRequestOptionsMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeDeserializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/RelyingPartyPublicKeyMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementMixin.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementSerializer.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/jackson/WebauthnJackson2Module.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialCreationOptionsRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialRequestOptionsRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/ImmutableRelyingPartyRegistrationRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialCreationOptionsRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialRequestOptionsRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialUserEntityRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyAuthenticationRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyPublicKey.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyRegistrationRequest.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/UserCredentialRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/WebAuthnRelyingPartyOperations.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/management/Webauthn4JRelyingPartyOperations.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilter.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/HtmlTemplates.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsRepository.java (100%) rename {web => webauthn}/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifierTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticationAssertionResponses.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticatorAttestationResponses.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestBytes.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestCredentialRecords.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialCreationOptions.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialRequestOptions.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialUserEntities.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentials.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilterTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilterTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputJacksonTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/jackson/JacksonTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialJson.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/TestPublicKeyCredentialRpEntities.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/management/Webauthn4jRelyingPartyOperationsTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilterTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepositoryTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilterTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilterTests.java (100%) rename {web => webauthn}/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationRequestJacksonTests.java (100%) diff --git a/config/spring-security-config.gradle b/config/spring-security-config.gradle index 6eeda65d66..cd2fbff039 100644 --- a/config/spring-security-config.gradle +++ b/config/spring-security-config.gradle @@ -31,6 +31,7 @@ dependencies { optional project(':spring-security-oauth2-resource-server') optional project(':spring-security-rsocket') optional project(':spring-security-web') + optional project(':spring-security-webauthn') optional 'io.projectreactor:reactor-core' optional 'org.aspectj:aspectjweaver' optional 'org.springframework:spring-jdbc' @@ -43,7 +44,6 @@ dependencies { optional 'org.jetbrains.kotlin:kotlin-reflect' optional 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' optional 'jakarta.annotation:jakarta.annotation-api' - optional libs.webauthn4j.core provided 'jakarta.servlet:jakarta.servlet-api' @@ -57,6 +57,7 @@ dependencies { testImplementation project(':spring-security-saml2-service-provider') testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'tests') testImplementation project(path : ':spring-security-web', configuration : 'tests') + testImplementation project(path : ':spring-security-webauthn', configuration : 'tests') testImplementation "jakarta.inject:jakarta.inject-api" testImplementation "org.assertj:assertj-core" testImplementation "org.junit.jupiter:junit-jupiter-api" diff --git a/webauthn/spring-security-webauthn.gradle b/webauthn/spring-security-webauthn.gradle new file mode 100644 index 0000000000..aed1890cf9 --- /dev/null +++ b/webauthn/spring-security-webauthn.gradle @@ -0,0 +1,39 @@ +apply plugin: 'io.spring.convention.spring-module' + +dependencies { + management platform(project(":spring-security-dependencies")) + api project(':spring-security-core') + api project(':spring-security-web') + api 'org.springframework:spring-core' + api 'org.springframework:spring-beans' + api 'org.springframework:spring-web' + api libs.webauthn4j.core + + optional 'org.springframework:spring-jdbc' + optional 'org.springframework:spring-tx' + + provided 'jakarta.servlet:jakarta.servlet-api' + + testImplementation project(path: ':spring-security-core', configuration: 'tests') + testImplementation 'io.projectreactor:reactor-test' + testImplementation 'jakarta.xml.bind:jakarta.xml.bind-api' + testImplementation 'jakarta.websocket:jakarta.websocket-api' + testImplementation 'jakarta.websocket:jakarta.websocket-client-api' + testImplementation 'org.hamcrest:hamcrest' + testImplementation 'org.mockito:mockito-core' + testImplementation 'org.skyscreamer:jsonassert' + testImplementation 'org.springframework:spring-webflux' + testImplementation 'org.synchronoss.cloud:nio-multipart-parser' + testImplementation "org.assertj:assertj-core" + testImplementation "org.junit.jupiter:junit-jupiter-api" + testImplementation "org.junit.jupiter:junit-jupiter-params" + testImplementation "org.junit.jupiter:junit-jupiter-engine" + testImplementation "org.mockito:mockito-core" + testImplementation "org.mockito:mockito-junit-jupiter" + testImplementation "org.springframework:spring-test" + testImplementation "org.springframework:spring-webmvc" + testImplementation 'com.squareup.okhttp3:mockwebserver' + + testRuntimeOnly 'org.hsqldb:hsqldb' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutput.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutput.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutput.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutput.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutputs.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutputs.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutputs.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientOutputs.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAssertionResponse.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAssertionResponse.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAssertionResponse.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAssertionResponse.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttachment.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttachment.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttachment.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttachment.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttestationResponse.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttestationResponse.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttestationResponse.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorAttestationResponse.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorResponse.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorResponse.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorResponse.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorResponse.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorTransport.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorTransport.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorTransport.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorTransport.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/CredentialPropertiesOutput.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredentialPropertiesOutput.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/CredentialPropertiesOutput.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredentialPropertiesOutput.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/CredentialRecord.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredentialRecord.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/CredentialRecord.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/CredentialRecord.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientOutputs.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientOutputs.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientOutputs.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientOutputs.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableCredentialRecord.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableCredentialRecord.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableCredentialRecord.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutableCredentialRecord.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCose.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCose.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCose.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCose.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCose.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCose.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCose.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCose.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredential.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredential.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredential.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredential.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialCreationOptions.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialCreationOptions.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialCreationOptions.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialCreationOptions.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialDescriptor.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialDescriptor.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialDescriptor.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialDescriptor.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialParameters.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialParameters.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialParameters.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialParameters.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRequestOptions.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRequestOptions.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRequestOptions.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRequestOptions.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRpEntity.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRpEntity.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRpEntity.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialRpEntity.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialType.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialType.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialType.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialType.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java similarity index 87% rename from web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java index b3d1b9a86a..f9836d2d3e 100644 --- a/web/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java +++ b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/PublicKeyCredentialUserEntity.java @@ -18,6 +18,9 @@ package org.springframework.security.web.webauthn.api; import java.io.Serializable; +import org.springframework.security.web.webauthn.management.RelyingPartyAuthenticationRequest; +import org.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations; + /** * PublicKeyCredentialUserEntity @@ -27,7 +30,7 @@ import java.io.Serializable; * * @author Rob Winch * @since 6.4 - * @see org.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations#authenticate(org.springframework.security.web.webauthn.management.RelyingPartyAuthenticationRequest) + * @see WebAuthnRelyingPartyOperations#authenticate(RelyingPartyAuthenticationRequest) */ public interface PublicKeyCredentialUserEntity extends Serializable { diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/ResidentKeyRequirement.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/ResidentKeyRequirement.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/ResidentKeyRequirement.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/ResidentKeyRequirement.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/api/UserVerificationRequirement.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/api/UserVerificationRequirement.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/api/UserVerificationRequirement.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/api/UserVerificationRequirement.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthentication.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthentication.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthentication.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthentication.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilter.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilter.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilter.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilter.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationProvider.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationProvider.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationProvider.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationProvider.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationRequestToken.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationRequestToken.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationRequestToken.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationRequestToken.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AttestationConveyancePreferenceSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientInputsSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsDeserializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsDeserializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsDeserializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsDeserializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticationExtensionsClientOutputsMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAssertionResponseMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAssertionResponseMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAssertionResponseMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAssertionResponseMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentDeserializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentDeserializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentDeserializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentDeserializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttachmentSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttestationResponseMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttestationResponseMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttestationResponseMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorAttestationResponseMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorSelectionCriteriaMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorSelectionCriteriaMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorSelectionCriteriaMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorSelectionCriteriaMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportDeserializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportDeserializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportDeserializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportDeserializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/AuthenticatorTransportSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/BytesMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/BytesMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/BytesMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/BytesMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/BytesSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/BytesSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/BytesSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/BytesSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierDeserializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierDeserializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierDeserializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierDeserializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/COSEAlgorithmIdentifierSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/CredentialPropertiesOutputMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredentialPropertiesOutputMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/CredentialPropertiesOutputMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/CredentialPropertiesOutputMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/DurationSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/DurationSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/DurationSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/DurationSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialCreationOptionsMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialCreationOptionsMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialCreationOptionsMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialCreationOptionsMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialRequestOptionsMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialRequestOptionsMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialRequestOptionsMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialRequestOptionsMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeDeserializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeDeserializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeDeserializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeDeserializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialTypeSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/RelyingPartyPublicKeyMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/RelyingPartyPublicKeyMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/RelyingPartyPublicKeyMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/RelyingPartyPublicKeyMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/ResidentKeyRequirementSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementMixin.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementMixin.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementMixin.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementMixin.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementSerializer.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementSerializer.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementSerializer.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/UserVerificationRequirementSerializer.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/jackson/WebauthnJackson2Module.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/WebauthnJackson2Module.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/jackson/WebauthnJackson2Module.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/jackson/WebauthnJackson2Module.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialCreationOptionsRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialCreationOptionsRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialCreationOptionsRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialCreationOptionsRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialRequestOptionsRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialRequestOptionsRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialRequestOptionsRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutablePublicKeyCredentialRequestOptionsRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/ImmutableRelyingPartyRegistrationRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutableRelyingPartyRegistrationRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/ImmutableRelyingPartyRegistrationRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/ImmutableRelyingPartyRegistrationRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialCreationOptionsRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialCreationOptionsRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialCreationOptionsRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialCreationOptionsRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialRequestOptionsRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialRequestOptionsRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialRequestOptionsRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialRequestOptionsRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialUserEntityRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialUserEntityRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialUserEntityRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/PublicKeyCredentialUserEntityRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyAuthenticationRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyAuthenticationRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyAuthenticationRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyAuthenticationRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyPublicKey.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyPublicKey.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyPublicKey.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyPublicKey.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyRegistrationRequest.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyRegistrationRequest.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyRegistrationRequest.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/RelyingPartyRegistrationRequest.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/UserCredentialRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/UserCredentialRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/UserCredentialRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/UserCredentialRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/WebAuthnRelyingPartyOperations.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/WebAuthnRelyingPartyOperations.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/WebAuthnRelyingPartyOperations.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/WebAuthnRelyingPartyOperations.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/management/Webauthn4JRelyingPartyOperations.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/management/Webauthn4JRelyingPartyOperations.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/management/Webauthn4JRelyingPartyOperations.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/management/Webauthn4JRelyingPartyOperations.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilter.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilter.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilter.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilter.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/HtmlTemplates.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/HtmlTemplates.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/HtmlTemplates.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/HtmlTemplates.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsRepository.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsRepository.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsRepository.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsRepository.java diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java b/webauthn/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java similarity index 100% rename from web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java rename to webauthn/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifierTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifierTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifierTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifierTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticationAssertionResponses.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticationAssertionResponses.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticationAssertionResponses.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticationAssertionResponses.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticatorAttestationResponses.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticatorAttestationResponses.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticatorAttestationResponses.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestAuthenticatorAttestationResponses.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestBytes.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestBytes.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestBytes.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestBytes.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestCredentialRecords.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestCredentialRecords.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestCredentialRecords.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestCredentialRecords.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialCreationOptions.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialCreationOptions.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialCreationOptions.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialCreationOptions.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialRequestOptions.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialRequestOptions.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialRequestOptions.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialRequestOptions.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialUserEntities.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialUserEntities.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialUserEntities.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentialUserEntities.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentials.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentials.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentials.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/api/TestPublicKeyCredentials.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/HttpSessionPublicKeyCredentialRequestOptionsRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilterTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilterTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilterTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilterTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilterTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilterTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilterTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationFilterTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/authentication/WebAuthnAuthenticationTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputJacksonTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputJacksonTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputJacksonTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/CredProtectAuthenticationExtensionsClientInputJacksonTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/jackson/JacksonTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/JacksonTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/jackson/JacksonTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/JacksonTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialJson.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialJson.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialJson.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/jackson/PublicKeyCredentialJson.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/JdbcPublicKeyCredentialUserEntityRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/JdbcUserCredentialRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/MapPublicKeyCredentialUserEntityRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/MapUserCredentialRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/TestPublicKeyCredentialRpEntities.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/TestPublicKeyCredentialRpEntities.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/TestPublicKeyCredentialRpEntities.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/TestPublicKeyCredentialRpEntities.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/management/Webauthn4jRelyingPartyOperationsTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/management/Webauthn4jRelyingPartyOperationsTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/management/Webauthn4jRelyingPartyOperationsTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/management/Webauthn4jRelyingPartyOperationsTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilterTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilterTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilterTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/registration/DefaultWebAuthnRegistrationPageGeneratingFilterTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepositoryTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepositoryTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepositoryTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/registration/HttpSessionPublicKeyCredentialCreationOptionsRepositoryTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilterTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilterTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilterTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilterTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilterTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilterTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilterTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilterTests.java diff --git a/web/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationRequestJacksonTests.java b/webauthn/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationRequestJacksonTests.java similarity index 100% rename from web/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationRequestJacksonTests.java rename to webauthn/src/test/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationRequestJacksonTests.java