mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-23 12:32:13 +00:00
Merge branch '6.5.x'
- WebAuthnConfigurer Code Cleanup Closes gh-17063
This commit is contained in:
commit
506a801f29
@ -46,6 +46,7 @@ import org.springframework.security.web.webauthn.registration.DefaultWebAuthnReg
|
|||||||
import org.springframework.security.web.webauthn.registration.PublicKeyCredentialCreationOptionsFilter;
|
import org.springframework.security.web.webauthn.registration.PublicKeyCredentialCreationOptionsFilter;
|
||||||
import org.springframework.security.web.webauthn.registration.PublicKeyCredentialCreationOptionsRepository;
|
import org.springframework.security.web.webauthn.registration.PublicKeyCredentialCreationOptionsRepository;
|
||||||
import org.springframework.security.web.webauthn.registration.WebAuthnRegistrationFilter;
|
import org.springframework.security.web.webauthn.registration.WebAuthnRegistrationFilter;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configures WebAuthn for Spring Security applications
|
* Configures WebAuthn for Spring Security applications
|
||||||
@ -75,6 +76,7 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
* @return the {@link WebAuthnConfigurer} for further customization
|
* @return the {@link WebAuthnConfigurer} for further customization
|
||||||
*/
|
*/
|
||||||
public WebAuthnConfigurer<H> rpId(String rpId) {
|
public WebAuthnConfigurer<H> rpId(String rpId) {
|
||||||
|
Assert.hasText(rpId, "rpId be null or empty");
|
||||||
this.rpId = rpId;
|
this.rpId = rpId;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -85,6 +87,7 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
* @return the {@link WebAuthnConfigurer} for further customization
|
* @return the {@link WebAuthnConfigurer} for further customization
|
||||||
*/
|
*/
|
||||||
public WebAuthnConfigurer<H> rpName(String rpName) {
|
public WebAuthnConfigurer<H> rpName(String rpName) {
|
||||||
|
Assert.hasText(rpName, "rpName can't be null or empty");
|
||||||
this.rpName = rpName;
|
this.rpName = rpName;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -106,6 +109,7 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
* @see #allowedOrigins(String...)
|
* @see #allowedOrigins(String...)
|
||||||
*/
|
*/
|
||||||
public WebAuthnConfigurer<H> allowedOrigins(Set<String> allowedOrigins) {
|
public WebAuthnConfigurer<H> allowedOrigins(Set<String> allowedOrigins) {
|
||||||
|
Assert.notNull(allowedOrigins, "allowedOrigins can't be null");
|
||||||
this.allowedOrigins = allowedOrigins;
|
this.allowedOrigins = allowedOrigins;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -129,6 +133,7 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
* @return the {@link WebAuthnConfigurer} for further customization
|
* @return the {@link WebAuthnConfigurer} for further customization
|
||||||
*/
|
*/
|
||||||
public WebAuthnConfigurer<H> messageConverter(HttpMessageConverter<Object> converter) {
|
public WebAuthnConfigurer<H> messageConverter(HttpMessageConverter<Object> converter) {
|
||||||
|
Assert.notNull(converter, "converter can't be null");
|
||||||
this.converter = converter;
|
this.converter = converter;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -140,15 +145,15 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
*/
|
*/
|
||||||
public WebAuthnConfigurer<H> creationOptionsRepository(
|
public WebAuthnConfigurer<H> creationOptionsRepository(
|
||||||
PublicKeyCredentialCreationOptionsRepository creationOptionsRepository) {
|
PublicKeyCredentialCreationOptionsRepository creationOptionsRepository) {
|
||||||
|
Assert.notNull(creationOptionsRepository, "creationOptionsRepository can't be null");
|
||||||
this.creationOptionsRepository = creationOptionsRepository;
|
this.creationOptionsRepository = creationOptionsRepository;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configure(H http) throws Exception {
|
public void configure(H http) throws Exception {
|
||||||
UserDetailsService userDetailsService = getSharedOrBean(http, UserDetailsService.class).orElseGet(() -> {
|
UserDetailsService userDetailsService = getSharedOrBean(http, UserDetailsService.class)
|
||||||
throw new IllegalStateException("Missing UserDetailsService Bean");
|
.orElseThrow(() -> new IllegalStateException("Missing UserDetailsService Bean"));
|
||||||
});
|
|
||||||
PublicKeyCredentialUserEntityRepository userEntities = getSharedOrBean(http,
|
PublicKeyCredentialUserEntityRepository userEntities = getSharedOrBean(http,
|
||||||
PublicKeyCredentialUserEntityRepository.class)
|
PublicKeyCredentialUserEntityRepository.class)
|
||||||
.orElse(userEntityRepository());
|
.orElse(userEntityRepository());
|
||||||
@ -238,12 +243,9 @@ public class WebAuthnConfigurer<H extends HttpSecurityBuilder<H>>
|
|||||||
PublicKeyCredentialUserEntityRepository userEntities, UserCredentialRepository userCredentials) {
|
PublicKeyCredentialUserEntityRepository userEntities, UserCredentialRepository userCredentials) {
|
||||||
Optional<WebAuthnRelyingPartyOperations> webauthnOperationsBean = getBeanOrNull(
|
Optional<WebAuthnRelyingPartyOperations> webauthnOperationsBean = getBeanOrNull(
|
||||||
WebAuthnRelyingPartyOperations.class);
|
WebAuthnRelyingPartyOperations.class);
|
||||||
if (webauthnOperationsBean.isPresent()) {
|
return webauthnOperationsBean.orElseGet(() -> new Webauthn4JRelyingPartyOperations(userEntities,
|
||||||
return webauthnOperationsBean.get();
|
userCredentials, PublicKeyCredentialRpEntity.builder().id(this.rpId).name(this.rpName).build(),
|
||||||
}
|
this.allowedOrigins));
|
||||||
Webauthn4JRelyingPartyOperations result = new Webauthn4JRelyingPartyOperations(userEntities, userCredentials,
|
|
||||||
PublicKeyCredentialRpEntity.builder().id(this.rpId).name(this.rpName).build(), this.allowedOrigins);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user