如何使用我自己的机制自定义spring-安全认证流程

how to custom spring-security authentication process with my own mechanism

我正在尝试使用 spring 安全性来保护我的应用程序。

我对 spring 安全性的理解是,他们会根据用户输入的密码检查从 UserDetails 加载的密码。

问题是我的登录身份验证是将用户名和密码输入 pl/sql 函数,该函数将 return 一个结果代码。所以我无法从数据库中获取密码。

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 并仅使用我的结果代码作为身份验证结果?

拜托,我们将不胜感激

首先。从服务器端应用程序的数据库中获取密码不容易受到攻击。因为如果您可以访问 table 数据,那么就没有用了。

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

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

然后关于spring安全。它仍然在路线图中。但是如果你需要一些更高级的框架,你必须查看 [Apache Shiro][1].

如果您想知道如何设置 spring 安全性。 link 高度可定制。