Jestem nowy w Spring i moim wymaganiem jest to, że nie chcę uwierzytelniać użytkownika przy użyciu nazwy użytkownika i hasła. Użytkownik jest Uwierzytelnij jest jakaś inna aplikacja i moja aplikacja uzyskać prośbę wraz folloing szczegóły:Wiosna 3.0 Bezpieczeństwo - Autoryzacja z uwierzytelnianiem
- Nazwa użytkownika
- Role
Chcę użyć Wiosna zabezpieczeń w celu zabezpieczenia stron zgodnie z role w żądaniu. Myślałem o pisaniu UserDetailService, ale to tylko dodaje dane żądania, Spring wciąż prosi o informacje uwierzytelniające. Wtedy pomyślałem o napisaniu czegoś tak:
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;
}
}
idę we właściwym kierunku. Jeśli tak, jak skonfigurować całość ... w wiosennym xml.