Recuperar Regra de Usuário no Spring Secutiry Core
15/01/2013 17:07
0
BOa Tarde galera, chego novamente com outra dúvida :) .... estou utilizando o security core para autenticação de usuário ... queria saber como poderia pegar a regra(SECROLER) que o meu usuário está vinculado para redirecioná-lo para uma gsp especifica a partir de sua regra! Agradeço desde já as respostas!
Tags: Spring Secutiry Core - Autenticação - roler - regras


0
Opa Alysson,

são os registros de ROLE associados ao seu usuário, não?
Confesso que não entendi direito a sua dúvida. Você quer os registros de ROLES associados ou as regras em si? Aquelas no formato 'hasRole(akdkdk)'?


0
Kico talvez eu tenha explicado mal.... vamos supor que eu tenha uma lista de regras ROLER_ADMIN, ROLER_ARQUIVISTA, etc ... quando cadastro um usuário (USER) eu vinculo ele a uma regra dessas, por exemplo o usuário Alysson está vinculado a regra ROLE_ADMIN, o que eu pretendo fazer é que na hora que ele for fazer o login o sistema verifique qual regra o meu usuário está vinculado (no caso de alysson a ROLER_ADMIN) e ao invés de redireciona-lo para a index(como vem pre configurado no plugin) ele redirecionar o usuário pra outra página que representa a sua regra... entendeu :/ ?
15/01/2013 18:06


0
Olá Alysson.

Eu utilizo o Acegi (predecessor do Security Core) e na gsp da seguinte forma:
<g:ifAuthenticated>
<g:ifAnyGranted role="ROLE_USER">
(...)

para verificar a regra do usuário e exibir determinados itens da página para ele.

Já no controller eu faço o seguinte:

def authenticateService
(...)
def isAdmin = authenticateService.ifAllGranted('ROLE_ADM') // Administrador

para verificar se o usuário logado é o administrador, permitindo que, por exemplo, sejam listados todos os registros do sistema para ele.
15/01/2013 19:53


0
Galera eu acho que minha dúvida tá muito mal elaborada kkkkkkkkkkk .... então vou tentar de novo .... quando fazemos o login por padrão somos redirecionados para a index.gsp .... eu queria o seguinte, supondo que temos essas regras ROLE_ADMIN E ROLE_USER.... quando o usuário entrasse no sistema e opta-se para realizar o login o sistema recuperaria (de alguma forma) qual a regra que o usuário está vinculado e depois ele iria redirecionar este usuário para a pagina referente a sua regra .... ou seja iria redireciona-lo para uma gsp adminIndex.gsp ou userIndex.gsp ... tipo rotinas como encontramos em vários softwares desktop :/ .... um pseudo-código por exemplo:

se usuario.regra == role_admin então redireciona usuario para adminIndex.gsp

se não if usuario.regra == role_user redireciona usuario para userIndex.gsp

se não redireicona usuario para formulario de login

espero que tenha ficado um pouco mais claro agora ! Abraços
15/01/2013 20:03


1
Galera resolvi o problema.... não precisei se quer mexer nas configurações do plugin apenas quando a action do plugin me redirecionou pra minha index fiz o tratamento no meu próprio controller... ficando assim:

class SistemaController {

def springSecurityService;

def index() {
/*Verifica se existe algum usuário logado*/
if(springSecurityService.getCurrentUser() == null){
return;
}
redirect(action:verificarRotina());
}

/*Metodo para verificar e redirecionar o usuário para sua rotina especifica*/
def verificarRotina(){
/*Pegando nome do Usuario Logado na Sessão*/
def user = springSecurityService.getProperty("authentication").getPrincipal().getUsername()
/*Pegando o usuario da sessão*/
def userSession = springSecurityService.getCurrentUser();
/*Criteria que retorna a regra do usuário da sessão a partir do seu username*/
def userRoler = SecUserSecRoler.findBySecUser(userSession);
/*Verificando qual regra está vinculada ao usuário e o redirecionando para sua gsp especifica*/
if(userRoler.secRoler.toString().equals("ROLE_USUARIO")){
redirect(action:"adminArquivista");
}else if(userRoler.secRoler.toString().equals("ROLE_ARQUIVISTA")){
redirect(action:"adminUsuarioExterno");
}
}

@Secured(['ROLE_ARQUIVISTA'])
def adminArquivista(){
render(view:'adminArquivista')
}


@Secured(['ROLE_USUARIO'])
def adminUsuarioExterno(){
render(view:'adminUsuarioExterno')
}
}

Abraço a todos que Ajudaram :D
15/01/2013 23:14


0
Bom saber Alysson, precisamos estamos aí.



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