Alguém sabe a melhor forma de configurar o spring security numa app com vraptor 3.3.1?
O applicationContext fica no classpath, até aí beleza, quando coloco o filter do security ele reclama que não foi declarado o contextListener do spring. Mas eu não preciso declarar porque o listener no vraptor já faz o trabalho né?
tenta o seguinte, coloque o listener do spring ( o context, não o request ), apontando pro applicationContext.xml do classpath. Teoricamente o VRaptor deve usá-lo para registrá-lo seus componentes.
O que pode acontecer é ele inicializar os beans singleton declarados no applicationContext.xml duas vezes (mas vai inicializar, destruir e criar outro, não vão ficar dois)
foxpv
Lucas,
Quando eu tento do jeito que vc falou parece que dá problema na hora de iniciar o ResourceHandler do vraptor:
se vc tira o applicationContext.xml a aplicação sobe normalmente?
se vc tira o filtro do spring security a aplicação sobe normalmente?
foxpv
se eu tiro o filtro do spring (o contextListener) e deixo o filtro do spring security, ela sobe normalmente. Se eu tiro o filtro do spring security e deixo do do spring (contextListener), dá pau.
Lucas_Cavalcanti
só que sem o filtro do contextListener o filtro do spring security não funciona, certo?
foxpv
Complementando:
Se eu somente tiro o applicationContext ele lança um esperado
Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
foxpv
Correto!
Lucas_Cavalcanti
em que momento dá pau? na subida do servidor?
foxpv
O pau do ResourceHandler?
Sim, na subida do servidor.
Lucas_Cavalcanti
não, o pau do filtro do security sem o listener?
foxpv
aí dá pau durante cada requisição, mas ele sai do filter sem retornar erro 500 e a requisição é processada até o final (sem aplicar as regras do spring security obviamente).
Já até tinha visto seu post, e é exatamente isso que estou tentando fazer, mas tá dando pau.
Lucas_Cavalcanti
tenta atualizar pro vraptor 3.4, e deixar o context listener
foxpv
Lucas, desculpa a demora, acabei dormindo.
Atualizei pro vraptor 3.4 e continua dando o mesmo problema com o ResourceHandler.
foxpv
Estava cogitando mudar pra versão mais nova do spring mas acho que não faz sentido visto que a última versão é a 3.0.6 e eu estou usando a 3.0.5.
Lucas_Cavalcanti
então… teoricamente deveria funcionar… vc já fez o teste de deixar só o contextListener e um applicationContext.xml vazio?
foxpv
Só com o contextListener e o applicationContext vazio subiu!
foxpv
Quando eu faço as declarações do security no applicationContext dá o erro
<!-- SPRING SECURITY --><security:httpauto-config="true"><security:intercept-urlpattern="/**"access="ROLE_USER"/></security:http><security:authentication-manager><security:authentication-provider><security:user-service><security:username="jimi"password="jimispassword"authorities="ROLE_USER, ROLE_ADMIN"/><security:username="bob"password="bobspassword"authorities="ROLE_USER"/></security:user-service></security:authentication-provider></security:authentication-manager>
Lucas_Cavalcanti
então é algo que vc colocou no applicationContext.xml
posta ele aqui por favor
Lucas_Cavalcanti
estranho… ele tá se metendo na criação dos componentes da aplicação, não deveria.
vc colocou as restrições do mesmo jeito que está no blog do daniel?