spring中不区分大小写的身份验证



我发现在我的应用程序中,带有spring安全性的安全性在登录时不会检查我的用户名大小写。

我有这个代码:

authBuilder
.jdbcAuthentication()
.dataSource(dataSource)
.usersByUsernameQuery("SELECT username, password, enabled FROM Utenti WHERE username = ?")
.authoritiesByUsernameQuery("SELECT username, role FROM Utenti WHERE username = ?");

我不知道为什么当我对用户名使用不同的特殊情况时,spring的身份验证允许所有情况。有人能帮我吗?

感谢

这可能是由数据库模式定义引起的。请检查数据库列的类型。默认情况下,Spring为H2提供了一个使用类型VARCHAR_IGNORECASE的模式。不过,根据您的需求和特定的数据库,该模式可以进行调整。

  • 弹簧参考:https://docs.spring.io/spring-security/reference/servlet/appendix/database-schema.html
  • H2型VARCHAR_IGNORECASE:http://h2database.com/html/datatypes.html#varchar_ignorecase_type

相关内容

最新更新