Tôi mới sử dụng Spring và yêu cầu của tôi là tôi không muốn xác thực người dùng bằng tên người dùng và mật khẩu. Người dùng là xác thực là một số ứng dụng khác và ứng dụng của tôi nhận được yêu cầu với các chi tiết folloing:Bảo mật mùa xuân 3.0 - Cấp phép với xác thực
- User name
- Vai trò
Tôi chỉ muốn sử dụng Xuân An để bảo đảm các trang theo vai trò trong yêu cầu. Tôi đã đưa ra một suy nghĩ về cách viết UserDetailService, nhưng chỉ thêm dữ liệu yêu cầu, Spring vẫn yêu cầu thông tin xác thực. Sau đó, tôi nghĩ đến việc viết một cái gì đó như sau:
public class UserLogin {
/*
@Resource(name = "userDetailsService")
private UserDetailsService userDetailsService;
*/
@Resource(name = "authenticationManager")
private AuthenticationManager authenticationManager;
public boolean login(UserEntity user) {
//UserDetails ud = userDetailsService.loadUserByUsername(username);
Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
for (String role : user.getAuthorities()) {
authorities.add(new GrantedAuthorityImpl(role));
}
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword(), authorities);
try {
Authentication auth = authenticationManager.authenticate(token);
SecurityContext securityContext = new SecurityContextImpl();
// Places in ThredLocal for future retrieval
SecurityContextHolder.setContext(securityContext);
SecurityContextHolder.getContext().setAuthentication(auth);
} catch (AuthenticationException e) {
return false;
}
return true;
}
}
Tôi đi đúng hướng. Nếu vậy, làm thế nào để cấu hình toàn bộ điều .. trong spring-xml.