Soy nuevo en Spring y mi requisito es que no quiero autenticar al usuario con nombre de usuario y contraseña. El usuario es autenticar alguna otra aplicación y mi aplicación llegar la solicitud con detalles folloing:Spring 3.0 Security - Autorización con autenticación
- nombre de usuario
- Roles
Sólo quiero usar Spring Security para asegurar las páginas de acuerdo con el roles en la solicitud. He pensado en escribir UserDetailService, pero eso solo agrega datos de solicitud, Spring aún solicita información de autenticación. luego pensé en escribir algo como lo siguiente:
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;
}
}
Am I que va en la dirección correcta. Si es así, cómo configurar todo ... en spring-xml.