소스 검색

Document JDBC Persistence for WebAuthn

Issue gh-16282
Rob Winch 7 달 전
부모
커밋
d3332e1956
2개의 변경된 파일44개의 추가작업 그리고 0개의 파일을 삭제
  1. 43 0
      docs/modules/ROOT/pages/servlet/authentication/passkeys.adoc
  2. 1 0
      docs/modules/ROOT/pages/whats-new.adoc

+ 43 - 0
docs/modules/ROOT/pages/servlet/authentication/passkeys.adoc

@@ -118,6 +118,49 @@ open fun userDetailsService(): UserDetailsService {
 ----
 ======
 
+
+[[passkeys-configuration-persistence]]
+=== JDBC & Custom Persistence
+
+WebAuthn performs persistence with javadoc:org.springframework.security.web.webauthn.management.PublicKeyCredentialUserEntityRepository[] and javadoc:org.springframework.security.web.webauthn.management.UserCredentialRepository[].
+The default is to use in memory persistence, but JDBC persistence is support with javadoc:org.springframework.security.web.webauthn.management.JdbcPublicKeyCredentialUserEntityRepository[] and javadoc:org.springframework.security.web.webauthn.management.JdbcUserCredentialRepository[].
+To configure JDBC based persistence, expose the repositories as a Bean:
+
+[tabs]
+======
+Java::
++
+[source,java,role="primary"]
+----
+@Bean
+JdbcPublicKeyCredentialUserEntityRepository jdbcPublicKeyCredentialRepository(JdbcOperations jdbc) {
+	return new JdbcPublicKeyCredentialUserEntityRepository(jdbc);
+}
+
+@Bean
+JdbcUserCredentialRepository jdbcUserCredentialRepository(JdbcOperations jdbc) {
+	return new JdbcUserCredentialRepository(jdbc);
+}
+----
+
+Kotlin::
++
+[source,kotlin,role="secondary"]
+----
+@Bean
+fun jdbcPublicKeyCredentialRepository(jdbc: JdbcOperations): JdbcPublicKeyCredentialUserEntityRepository {
+    return JdbcPublicKeyCredentialUserEntityRepository(jdbc)
+}
+
+@Bean
+fun jdbcUserCredentialRepository(jdbc: JdbcOperations): JdbcUserCredentialRepository {
+    return JdbcUserCredentialRepository(jdbc)
+}
+----
+======
+
+If JDBC does not meet your needs, you can create your own implementations of the interfaces and use them by exposing them as a Bean similar to the example above.
+
 [[passkeys-configuration-pkccor]]
 === Custom PublicKeyCredentialCreationOptionsRepository
 

+ 1 - 0
docs/modules/ROOT/pages/whats-new.adoc

@@ -17,5 +17,6 @@ Note that this may affect reports that operate on this key name.
 
 == WebAuthn
 
+* https://github.com/spring-projects/spring-security/pull/16282[gh-16282] - xref:servlet/authentication/passkeys.adoc#passkeys-configuration-persistence[JDBC Persistence] for WebAuthn/Passkeys
 * https://github.com/spring-projects/spring-security/pull/16397[gh-16397] - Added the ability to configure a custom `HttpMessageConverter` for Passkeys using the optional xref:servlet/authentication/passkeys.adoc#passkeys-configuration[`messageConverter` property] on the `webAuthn` DSL.
 * https://github.com/spring-projects/spring-security/pull/16396[gh-16396] - Added the ability to configure a custom xref:servlet/authentication/passkeys.adoc#passkeys-configuration-pkccor[`PublicKeyCredentialCreationOptionsRepository`]