diff --git a/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java b/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java index 877869b709a..e07dd283f61 100644 --- a/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java +++ b/web/src/main/java/org/springframework/security/web/webauthn/authentication/PublicKeyCredentialRequestOptionsFilter.java @@ -75,6 +75,15 @@ public PublicKeyCredentialRequestOptionsFilter(WebAuthnRelyingPartyOperations rp this.rpOptions = rpOptions; } + /** + * Sets the {@link RequestMatcher} used to trigger this filter. + * @param requestMatcher the {@link RequestMatcher} to use + */ + public void setRequestMatcher(RequestMatcher requestMatcher) { + Assert.notNull(requestMatcher, "requestMatcher cannot be null"); + this.matcher = requestMatcher; + } + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java b/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java index 0863925c8c8..453246feb18 100644 --- a/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java +++ b/web/src/main/java/org/springframework/security/web/webauthn/registration/PublicKeyCredentialCreationOptionsFilter.java @@ -82,6 +82,15 @@ public PublicKeyCredentialCreationOptionsFilter(WebAuthnRelyingPartyOperations r this.rpOperations = rpOperations; } + /** + * Sets the {@link RequestMatcher} used to trigger this filter. + * @param requestMatcher the {@link RequestMatcher} to use + */ + public void setRequestMatcher(RequestMatcher requestMatcher) { + Assert.notNull(requestMatcher, "requestMatcher cannot be null"); + this.matcher = requestMatcher; + } + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { diff --git a/web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java b/web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java index d14e8559148..ead41b669b5 100644 --- a/web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java +++ b/web/src/main/java/org/springframework/security/web/webauthn/registration/WebAuthnRegistrationFilter.java @@ -105,6 +105,24 @@ public WebAuthnRegistrationFilter(UserCredentialRepository userCredentials, this.rpOptions = rpOptions; } + /** + * Sets the {@link RequestMatcher} used to trigger this filter. + * @param registerCredentialMatcher the {@link RequestMatcher} to use + */ + public void setRegisterCredentialMatcher(RequestMatcher registerCredentialMatcher) { + Assert.notNull(registerCredentialMatcher, "registerCredentialMatcher cannot be null"); + this.registerCredentialMatcher = registerCredentialMatcher; + } + + /** + * Sets the {@link RequestMatcher} used to trigger this filter. + * @param removeCredentialMatcher the {@link RequestMatcher} to use + */ + public void setRemoveCredentialMatcher(RequestMatcher removeCredentialMatcher) { + Assert.notNull(removeCredentialMatcher, "removeCredentialMatcher cannot be null"); + this.removeCredentialMatcher = removeCredentialMatcher; + } + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {