如何使用我自己的机制自定义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 高度可定制。
我正在尝试使用 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 高度可定制。