我正试图通过Spring安全保护我的应用程序。
我对弹簧安全性的理解是他们根据用户输入的密码检查UserDetails的加载密码。
问题是我的登录验证是在pl / sql函数中输入用户名和密码,它将返回结果代码。所以我无法从数据库中获取密码。
int resultCode = (Integer) jt().execute(
"{? = call sec$utils.verify_password(?, ?, ?, ?) }",
new CallableStatementCallback(){
...
stmt.setString(3, username);
stmt.setString(4, password);
stmt.execute();
return stmt.getInt(5);});
Spring安全性是否有办法定制身份验证过程,以便我可以跳过loadUserByUsername并只使用我的结果代码作为身份验证结果?
请,任何帮助将不胜感激
答案 0 :(得分:-1)
首先。从服务器端应用程序获取数据库密码不容易受到攻击。因为如果你可以访问表数据,那么就不会使用它。
错误的概念 - Spring安全性不是关于从数据库返回结果代码。
关于身份验证和授权。您可以启用对特定用户组的各种URL的登录和访问。它将用户信息保存在静态类中,以便spring安全性可以识别用户的角色。
然后关于春天的安全。它仍然存在于路线图中。但是,如果您需要更高级的框架,则必须查看[Apache Shiro][1]
。
如果您想知道如何设置弹簧安全性。 link可高度自定义。