如何使用我自己的机制自定义spring-security身份验证过程

时间:2015-06-11 13:47:01

标签: java spring security spring-mvc spring-security

我正试图通过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并只使用我的结果代码作为身份验证结果?

请,任何帮助将不胜感激

1 个答案:

答案 0 :(得分:-1)

首先。从服务器端应用程序获取数据库密码不容易受到攻击。因为如果你可以访问表数据,那么就不会使用它。

错误的概念 - Spring安全性不是关于从数据库返回结果代码。

关于身份验证和授权。您可以启用对特定用户组的各种URL的登录和访问。它将用户信息保存在静态类中,以便spring安全性可以识别用户的角色。

然后关于春天的安全。它仍然存在于路线图中。但是,如果您需要更高级的框架,则必须查看[Apache Shiro][1]

如果您想知道如何设置弹簧安全性。 link可高度自定义。