Halo 中实现用户密码的自定义校验扩展
基于 Halo 本身提供了用户密码额外校验实现,基于 UsernamePasswordAuthenticationManager 实现用户账号密码信息的校验。这样我们就可以实现如 LDAP 的用户密码校验
源码分析
UsernamePasswordAuthenticator.java
认证验证类指定验证管理器
UsernamePasswordDelegatingAuthenticationManager.java提供一个 UsernamePasswordAuthenticationManager 的扩展点,如果扩展点返回的 MonoEmpty
则使用 Halo 本身的认证逻辑
认证实现
在插件中实现 UsernamePasswordAuthenticationManager
通过以下代码获取到用户的账号密码结合业务自身的逻辑返回对应的Authentication
即可,如果有异常需要基于AuthenticationException
进行抛出。