Simplified Spring Security with Grails
02/05/2018 22:19
0
Boa noite,

Estou tentando implementar o Spring Security e estou encontrando alguns problemas.

Estou seguindo esse tutorial https://spring.io/blog/2010/08/11/simplified-spring-security-with-grails/?

Algumas duvidas:

1 - Quando executei o comando "grails s2-quickstart org.example SecUser SecRole" ele não criou os controller(LoginController, e LogoutController),

2 - E não entendi onde que eu cadastro um novo usuário.
Tags: Grails Spring Security


1
Bom dia Luis

Bom vc poderia  consultar a doc official que é bem completa  aqui https://grails-plugins.github.io/grails-spring-security-core/

1 - ele gera as domains com o compando:  grails s2-quickstart  pacote ClasseUser ClasseRole (no meu caso sempre uso User e Role)  ele não gera os controllers ,  porem vc usa os controllers do plugin e por defaut ele usa  a tela de login dele o auth.gsp , que caso queira customizar vc pode  em views/login  criar uma view  auth.gsp(login)  e
denied.gsp
(acesso negado) e  customizar do jeito que quiser pois essas views sobreescrevem as default

2 - O Spring te da as Annotations de acesso  @secured(["ROLE"]) que vc usa nas suas actions para controlle de acesso , vc deve ter um controller UserController por exemplo se quiser cadastrar usuario  e tals

Há outro plugin que se chama spring-security-ui  ele te da uma interface  para cadastro de usuario role atribuicao de role etc.

Bom não sei se ajudei mais é isso
03/05/2018 12:36


0
Ajudou bastante. Estou tentando me guiar pela documentação.

Obrigado mesmo, qualquer coisa posto aqui mais dúvida.
04/05/2018 21:08


0
Cara eu abri um projeto novo só para testar o plugin.

Olha como apareceu: 

Como faço para aparecer o layout? Tenho que fazer o generate all? E quando clico em Register as new User, creio que eu deveria ter uma classe de usuário para chamar o formulário né?
07/05/2018 21:10


0
A imagem não carregou no post acima.
07/05/2018 21:12


0
vc precisa gerar as classes do spring security core e precisa dar as permissoes de acesso as view, e de preferencia adicionar um usuario  "default"
fiz um exemplo basico https://github.com/wgaalves/spring-security-grails-example
08/05/2018 10:52


0
Eu consigo gerar a página de login e tal, mais o plugin já me gera as páginas de cadastro de usuário?

Outra dúvida, eu não entendi muito bem como gerencia as permissões, tipo quais páginas para quais usuários.

Vocês usam algum comunicador? Para me ajudar, ainda não entendi muito bem como se usa esse plugin.
22/06/2018 20:05


0
Boa noite, galera. Atravessando o tópico. 
Eu sempre achei  o Spring security bem legal, mas pensando bem , ultimamente tenho achado ele extremamente pesado.
Recentemente em um projeto novo eu abri mão dele e implemente o login e o controle de acesso na mão. Apesar do tempo que precisei gastar pra fazer isso, no final das contas a aplicação ficou bem mais leve. Vocês ja tiveram essa impressão?  


0
Sinceramente, meu conhecimento de grails é bem básico, e a falta de tempo ajuda.
No momento estou desistindo de usar grails no projeto, e uma das coisas foi a dificuldade que tive de entender o Spring Security.
07/08/2018 12:14


0
Revivendo o tópico, resolvi fazer a unha mesmo.

Criei um Interceptor: 

class UsuarioInterceptor {
UsuarioInterceptor(){
matchAll()
}
boolean before() { 
if (!session.usuario) {
redirect(uri:"/")

render "Usuário ainda não logado"
println "Usuário ainda não logado"

return false
  }else{
return true
}
}
boolean after() { true }
void afterView() {
  // no-op
}
}

Quando eu comento a linha do redirect, funciona perfeitamente, ele renderiza com o texto de usuário não logado, sendo que quando eu coloco o redirect ele entra em lop e da o seguinte erro na página:

Esta página não está funcionandoRedirecionamento em excesso por localhost

[list][/list]
ERR_TOO_MANY_REDIRECTS
Eu vou continuar procurando a solução, mais estou postando aqui para se alguém souber a solução ajudar.

Estou usando grails 3.3.2:
| Grails Version: 3.3.2
| Groovy Version: 2.4.13
| JVM Version: 1.8.0_161
25/08/2018 15:04


0
Achei a solução.

No intercptor, eu troquei a linha:

UsuarioInterceptor(){
matchAll()
}

Por:

UsuarioInterceptor(){
match(controller: '*', action: '*')
}

E funcionou.
25/08/2018 17:51



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