Tôi tương đối mới với mùa xuân và mùa xuân an ninh.
Tôi đang cố gắng viết một chương trình mà tôi cần xác thực người dùng ở cuối máy chủ bằng bảo mật Spring,
Tôi đã nghĩ ra những điều sau:
public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{
@Override
protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken)
throws AuthenticationException
{
System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated());
}
@Override
protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException
{
System.out.println("Method invoked : retrieveUser");
//so far so good, i can authenticate user here, and throw exception if not authenticated!!
//THIS IS WHERE I WANT TO ACCESS SESSION OBJECT
}
}
Ưu điểm của tôi là khi người dùng được xác thực, tôi cần đặt một thuộc tính như:
session.setAttribute("userObject", myUserObject);
myUserObject là một đối tượng của một số lớp mà tôi có thể truy cập trong toàn bộ mã máy chủ của mình qua nhiều yêu cầu của người dùng.