你可以使用Spring Security並創建一個自定義的AuthenticationProvider。您可以使用JNDI查找直接從Container自身獲取authservice。
例子:
@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {
@Autowired
private AuthService authService;
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
String name = authentication.getName();
String password = authentication.getCredentials().toString();
// use the credentials to try to authenticate against the third party system
if (authService(name, password)) {
List<GrantedAuthority> grantedAuths = new ArrayList<>();
return new UsernamePasswordAuthenticationToken(name, password, grantedAuths);
} else {
throw new AuthenticationException("Unable to auth against third party systems");
}
}
@Override
public boolean supports(Class<?> authentication) {
return authentication.equals(UsernamePasswordAuthenticationToken.class);
}
而且,這裏使用Spring閱讀更多關於RESTful API中:
http://www.baeldung.com/rest-with-spring-series/
我約上我的現有應用程序的頂部添加春季安全主要關注的是兼容現有的身份驗證系統......或需要進行大規模更改才能使其工作。 – rcheuk 2014-09-30 17:38:33
現有認證系統的體系結構是什麼? – br1337 2014-09-30 17:42:17
習俗,據我所知。一對夫婦控制器處理用戶的會話,根據需要調用後端來登錄用戶並確定用戶的權限(這會影響用戶看到的屏幕) – rcheuk 2014-09-30 17:51:01