我正在使用 spring security 来管理我的项目中的用户登录/注册。我需要在三次登录尝试失败后实现用户锁定功能。我所做的是在数据库的“用户”表中添加另一个字段“account_non_locked”。
我面临的问题是 spring security 不会更新新添加的列。我深入研究了源代码,发现在默认的 UserDetailsManager 中,sql 语句写成:
"insert into users (username, password, enabled) values (?,?,?)"
这就解释了为什么它不能识别我的新专栏。
所以我复制该文件并更改它以适合我自己的需要,即 CustomUserDetailsManager.java
现在我无法配置spring security来使用我自己定制的UserDetailsManager。现在的配置文件是:
<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder ref="passwordEncoder" />
<jdbc-user-service id="userDetailsService" data-source-ref="dataSource" />
</authentication-provider>
</authentication-manager>
<beans:bean id="passwordEncoder" class="org.springframework.security.crypto.password.StandardPasswordEncoder" />
我在网上找不到任何可以正确配置的示例。请提前帮助和感谢!