我想知道Spring Security是否可以锁定rest api的所有端点,并且可以通过自定义验证来进行登录,而无需使用用户名和密码。
这就像创建一个接收令牌而不是用户/传递的自定义验证方法。然后,该方法将使用已验证调用者的第三方验证令牌。
这听起来很熟悉OAuth2只是后端API需要在春天安全,同时它不是OAuth2客户端:
非常感谢!
非常感谢任何评论或参考。
答案 0 :(得分:1)
Spring Security 是一个非常灵活的框架,它发布了各种允许用户根据需要自定义行为的接口。
我建议您使用以下资源来了解如何解决此问题:
答案 1 :(得分:1)
Spring Security通过查看SecurityContext
中的SecurityContextHolder
来确定用户是否经过身份验证。这意味着您可以使用以下内容对用户进行身份验证:
boolean userIsAuthenticated = ...
if(userIsAuthenticated) {
Authentication request = new UsernamePasswordAuthenticationToken(name, password);
Authentication result = ...
SecurityContext context = SecurityContextHolder.createEmptyContext();
context.setAuthentication(result);
SecurityContextHolder.setContext(context);
}