User Management#

Gradle module: source/extn/dbpwd-mgmt. Maven coordinate: com.palmyralabs.palmyra.extn:palmyra-dbpwd-mgmt:<version>.

Publishes the password-lifecycle services and a Spring Security AuthenticationProvider backed by a local database. Drop the dependency in, wire the AuthenticationProvider into your SecurityFilterChain, and every request authenticates against the user_password table.

Module dependencies#

api             deps.palmyra.store.base               // palmyra-base / store-base
api             deps.spring.web
implementation  deps.jakarta.servlet_api
implementation  'org.springframework.data:spring-data-jpa:3.2.1'
implementation  'org.springframework.boot:spring-boot-starter-security:3.2.1'
implementation  'jakarta.transaction:jakarta.transaction-api:2.0.1'
implementation  'org.modelmapper:modelmapper:3.2.0'

Notes:

  • No direct palmyra-spring dependency. The extension pulls palmyra-base only and relies on raw Spring artifacts — it’s usable in non-palmyra-spring apps too.
  • BCrypt arrives transitively via spring-security-crypto inside spring-boot-starter-security; BCryptPasswordEncoder is available without a separate coordinate.
  • UserPasswordRepository is not a JpaRepository. JPA is available (the module pulls spring-data-jpa) but the repository implementation is custom.

Pages#

Page Role
UserPasswordRepository Load / update the password record
PasswordMgmtService Verify, reset, change, force-change
PasswordVerificationService Narrow “verify only” SPI
LocalDBAuthenticationProvider Spring Security provider wired to the services above