具有Spring安全性和Java配置的自定义身份验证管理器
2022-09-01 14:07:48
我正在使用Spring Security和SpringMVC来创建一个Web应用程序(为了清楚起见,我将它称为WebApp),该应用程序与现有应用程序(我将称之为BackendApp)进行通信。
我想将身份验证职责委派给后端应用程序(这样我就不需要同步这两个应用程序)。
为了实现这一点,我希望WebApp(运行spring安全性)通过REST与BackendApp通信,并使用用户在表单中提供的用户名和密码进行通信,并根据BackendApp的响应是200 OK还是401 Unauthored进行身份验证。
我知道我需要编写一个自定义身份验证管理器来执行此操作,但是我对spring非常陌生,找不到有关如何实现它的任何信息。
我相信我需要做这样的事情:
public class CustomAuthenticationManager implements AuthenticationManager{
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = authentication.getName();
String pw = authentication.getCredentials().toString();
// Code to make rest call here and check for OK or Unauthorised.
// What do I return?
}
}
我是否设置 authentication.setAuthenticated(true) 如果成功,如果设置 false,否则设置为 false,仅此而已?
写完这篇文章后,我如何配置spring安全性以使用Java配置文件使用此身份验证管理器?
提前感谢您的任何帮助。