Spring Security自定义验证,不使用涉及的用户密码
我想知道Spring安全性是否可以锁定RESTAPI的所有端点,并通过自定义验证进行登录,而根本不使用用户名和密码 这类似于创建一个接收令牌而不是用户/通行证的自定义验证方法。然后,该方法将与已经验证调用方的第三方验证令牌 这听起来对OAuth2来说很熟悉,只是后端API需要通过spring进行保护,同时它不是OAuth2客户机:Spring Security自定义验证,不使用涉及的用户密码,spring,rest,spring-security,oauth-2.0,spring-security-oauth2,Spring,Rest,Spring Security,Oauth 2.0,Spring Security Oauth2,我想知道Spring安全性是否可以锁定RESTAPI的所有端点,并通过自定义验证进行登录,而根本不使用用户名和密码 这类似于创建一个接收令牌而不是用户/通行证的自定义验证方法。然后,该方法将与已经验证调用方的第三方验证令牌 这听起来对OAuth2来说很熟悉,只是后端API需要通过spring进行保护,同时它不是OAuth2客户机: 我们正在构建一个登录功能 我们有一个客户端(移动应用程序)、后端(类似REST的端点Spring MVC)和一个用于OAuth2/OpenIdConnect流的Aut
如有任何意见或参考,我们将不胜感激 Spring Security是一个非常灵活的框架,它发布了各种界面,允许用户根据需要自定义行为 我建议使用以下资源来了解如何进行此操作:
SecurityContextHolder
中的SecurityContext
来确定用户是否经过身份验证。这意味着您可以通过以下方式对用户进行身份验证:
boolean userIsAuthenticated = ...
if(userIsAuthenticated) {
Authentication request = new UsernamePasswordAuthenticationToken(name, password);
Authentication result = ...
SecurityContext context = SecurityContextHolder.createEmptyContext();
context.setAuthentication(result);
SecurityContextHolder.setContext(context);
}
Spring Security通过查看
SecurityContextHolder
中的SecurityContext
来确定用户是否经过身份验证。这意味着您可以通过以下方式对用户进行身份验证:
boolean userIsAuthenticated = ...
if(userIsAuthenticated) {
Authentication request = new UsernamePasswordAuthenticationToken(name, password);
Authentication result = ...
SecurityContext context = SecurityContextHolder.createEmptyContext();
context.setAuthentication(result);
SecurityContextHolder.setContext(context);
}
非常感谢您的回复!链接非常有用,视频非常棒!非常感谢您的回复!链接非常有用,视频非常棒!非常感谢Rob Winch!按照您的建议,我能够使用自定义过滤器和提供者来处理自定义验证。非常感谢您!按照您的建议,我能够使用自定义过滤器和提供程序来处理自定义验证。