spring security core
29/01/2014 18:27
public class WebUser extends GrailsUser {
private static final long serialVersionUID = -6212547755684175363L;
private MapParameter parameter = new MapParameter();
private boolean superUser;
public WebUser(String username, String password, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
boolean accountNonLocked, boolean superUser,
Collection<GrantedAuthority> authorities, Object id) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired,
accountNonLocked, authorities, id);
this.superUser = superUser;
}
public boolean isSuperUser() {
return superUser;
}
public void setParams(Map<String, ?> params) {
parameter.clear();
for (String key : params.keySet())
parameter.setObject(key, params.get(key));
}
public Parameter getParams() {
return parameter;
}
}
class UsuarioService implements GrailsUserDetailsService {
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
return loadUserByUsername(username, true)
}
UserDetails loadUserByUsername(String username, boolean loadRoles) throws UsernameNotFoundException, DataAccessException {
Usuario.withTransaction { status ->
def usuario = Usuario.findByLogin(username)
if (!usuario) throw new UsernameNotFoundException( 'User not found', username)
def acessos = (loadRoles) ? usuario.acessos : []
acessos << new GrantedAuthorityImpl(AuthenticatedVoter.IS_AUTHENTICATED_FULLY)
def user = new WebUser(usuario.login, usuario.senha, usuario.ativo, !usuario.expirado,
!usuario.senhaExpirada, !usuario.bloqueado, usuario.administrador, acessos, usuario.id)
return user
}
}
}
beans = {
userDetailsService(UsuarioService)
}
Para se registrar, clique aqui.