Spring Security sem uso de plugin
07/08/2014 13:59
2
Pessoal, boar tarde.

Queria saber se há alguma maneira de usar o Spring Security direto do JAR, sem usar o plugin no projeto. Como todos sabem, existem alguns problemas em usar plugins no grails que podem acabar quebrando a aplicação e estou tentando usar o mínimo possível. A compatibilidade inter-plugins também é um problema. Alguns plugins acabam interferindo com outros.
Isso se aplica não apenas a esse plugin especificamente, quem souber como incorporar outras funcionalidades a partir de libs java direto, sem ser por meio de plugins, a experiência é bem vinda, e pode ser útil para achar uma maneira com o Spring Security também.
Desde já agradeço.
Tags: Spring Security, plugins, issue


2
Oi Jonathan,

sim: é perfeitamente possível. Basta que você faça exatamente como faria se estivesse programando uma aplicação Spring MVC (ou qualquer outra baseada em servlets) normal.

Vai ter de incluir as dependências no arquivo BuildConfig.groovy

Modificar manualmente o arquivo web.xml incluindo o filtro do Spring Security

Adicionar os beans do Spring MVC usando a configuração do Spring usada pelo Grails.

É inclusive uma idéia bastante interessante esta sua: o plugin já trás diversas coisas prontas, mas é o tipo de experimento que vale à pena tentar.


0
Valeu Kico, vou tentar fazer isso aqui e retorno pra dizer se deu certo.
Só não sei exatamente como "adicionar os beans do Spring MVC usando a configuração do Spring usada pelo Grails", mas vou dar uma procurada.

Abraço.


2
Jonathan, dá uma lida nesta parte da documentação: http://grails.org/doc/latest/guide/spring.html

Nela explica como é que você faz para configurar os beans do Spring dentro do Grails.

Dica: lembre-se que o Grails é uma aplicação Spring MVC por debaixo dos panos. Isto ajuda bastante no sucesso do que você pretende fazer, pois o que é necessário executar é exatamente o que faria no Java tradicional.


0
Bem, estava tentando aqui, mas o web.xml some sempre que eu rodo o projeto. Estou usando a versão mais nova do GGTS. Já no tocante as dependências, não sei se coloquei todas:

aopalliance 1.0
Required for method security implementation.

ehcache 1.6.2
Required if the ehcache-based user cache implementation is used (optional).

spring-aop
Method security is based on Spring AOP

spring-beans
Required for Spring configuration

spring-expression
Required for expression-based method security (optional)

spring-jdbc
Required if using a database to store user data (optional).

spring-tx
Required if using a database to store user data (optional).

aspectjrt 1.6.10
Required if using AspectJ support (optional).

jsr250-api 1.0
Required if you are using JSR-250 method-security annotations (optional).

Vou continuando as tentativas aqui, qualquer avanço eu posto.


0
Jonathan, no caso do arquivo web.xml, você tem de executar primeiro o comando install-templates do Grails. Você o executou?


0
Sim, o problema é que ele sumia de repente. Bem, dei install-templates novamente e mandei sobrescrever os arquivos. Acho que agora foi. Tinha dado uma parada no FDS, mas vou ver agora a questão dos beans.


0
Acabei de testar por aqui e continuo tendo erros :(

objc[6041]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
| Error 2014-08-11 17:38:37,009 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed
Message: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/spring-security.xml]
Line | Method
->> 266 | run in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
| Error 2014-08-11 17:38:37,049 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/spring-security.xml]
Message: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/spring-security.xml]
Line | Method
->> 266 | run in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Error |
Forked Grails VM exited with error

Alguém sabe qual a bronca aqui? O do java já tinha e funcionava mesmo assim.


1
Bem, obrigado Kico pelo seu tempo.
Tive muitos problemas para configurar e consegui fazer algumas coisas aqui, mas infelizmente não mais vou tentar. Usarei o plugin mesmo nesse caso.

Vou tentar escapar de plugins, mas no caso do Spring Security vou usar o plugin mesmo. Burt Beckwith, o criador do plugin é autoridade em grails e vou confiar nele :D


1
Oi Jonathan,

concordo com você: só faria isto também se fosse para entender melhor o esquema de configuração do Spring no Grails.

Tirando isto você terminaria simplesmente repetindo o trabalho do plugin.

Uma sugestão: guarde o código fonte do plugin e, se possível, dê uma lida nele. Você verá que provavelmente fez algo muito próximo ao que eles fazem. ;)



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