spring security core
29/01/2014 18:27
0
Tem como eu colocar fields no spring security alem do padrao?
Tags: Segurança Spring


0
Olá Murilo!

Sua pergunta está bem resumida mas acredito que o que você quer é adicionar campos na sessão do usuário logado.

Eu faço assim:

1- Criar uma classe descendente da GrailsUser:



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;
}

}


2- Criar serviçõ que implementa a interface GrailsUserDetailsService


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
}
}

}


3- Adicionar referencia em resources.groovy


beans = {
userDetailsService(UsuarioService)
}



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto