Class DynamicWebAuthnRelyingPartyOperations
java.lang.Object
sk.iway.iwcm.system.spring.passkey.DynamicWebAuthnRelyingPartyOperations
- All Implemented Interfaces:
org.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
public class DynamicWebAuthnRelyingPartyOperations
extends Object
implements org.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
Dynamic WebAuthn Relying Party Operations that determines rpId from the current HTTP request.
This allows passkeys to work across multiple domains by automatically setting the rpId
based on the request's server name.
The wrapper creates and caches Webauthn4JRelyingPartyOperations instances per domain,
ensuring that passkey registration and authentication use the correct rpId for each domain.
Thread-safe: uses ConcurrentHashMap to cache operations per rpId.
-
Constructor Summary
ConstructorsConstructorDescriptionDynamicWebAuthnRelyingPartyOperations(org.springframework.security.web.webauthn.management.PublicKeyCredentialUserEntityRepository userEntityRepository, org.springframework.security.web.webauthn.management.UserCredentialRepository userCredentialRepository, String rpName, Set<String> allowedOrigins) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.security.web.webauthn.api.PublicKeyCredentialUserEntityauthenticate(org.springframework.security.web.webauthn.management.RelyingPartyAuthenticationRequest request) org.springframework.security.web.webauthn.api.PublicKeyCredentialRequestOptionscreateCredentialRequestOptions(org.springframework.security.web.webauthn.management.PublicKeyCredentialRequestOptionsRequest request) org.springframework.security.web.webauthn.api.PublicKeyCredentialCreationOptionscreatePublicKeyCredentialCreationOptions(org.springframework.security.web.webauthn.management.PublicKeyCredentialCreationOptionsRequest request) static StringDetermine the rpId from the current HTTP request.org.springframework.security.web.webauthn.api.CredentialRecordregisterCredential(org.springframework.security.web.webauthn.management.RelyingPartyRegistrationRequest request)
-
Constructor Details
-
DynamicWebAuthnRelyingPartyOperations
public DynamicWebAuthnRelyingPartyOperations(org.springframework.security.web.webauthn.management.PublicKeyCredentialUserEntityRepository userEntityRepository, org.springframework.security.web.webauthn.management.UserCredentialRepository userCredentialRepository, String rpName, Set<String> allowedOrigins)
-
-
Method Details
-
determineRpId
Determine the rpId from the current HTTP request. Falls back to configured default if no request is available.- Returns:
- the rpId (domain) for the current request
-
createPublicKeyCredentialCreationOptions
public org.springframework.security.web.webauthn.api.PublicKeyCredentialCreationOptions createPublicKeyCredentialCreationOptions(org.springframework.security.web.webauthn.management.PublicKeyCredentialCreationOptionsRequest request) - Specified by:
createPublicKeyCredentialCreationOptionsin interfaceorg.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
-
registerCredential
public org.springframework.security.web.webauthn.api.CredentialRecord registerCredential(org.springframework.security.web.webauthn.management.RelyingPartyRegistrationRequest request) - Specified by:
registerCredentialin interfaceorg.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
-
createCredentialRequestOptions
public org.springframework.security.web.webauthn.api.PublicKeyCredentialRequestOptions createCredentialRequestOptions(org.springframework.security.web.webauthn.management.PublicKeyCredentialRequestOptionsRequest request) - Specified by:
createCredentialRequestOptionsin interfaceorg.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
-
authenticate
public org.springframework.security.web.webauthn.api.PublicKeyCredentialUserEntity authenticate(org.springframework.security.web.webauthn.management.RelyingPartyAuthenticationRequest request) - Specified by:
authenticatein interfaceorg.springframework.security.web.webauthn.management.WebAuthnRelyingPartyOperations
-