JSF 2 + CDI + Apache SHIRO (Integração funciona bem?)

Pessoal, boa tarde a todos.
Estou começando uma aplicação do ZERO.

A Stack escolhida foi: JSF 2.2 + CDI(WELD) + Hibernate

Gostaria de uma solução de Autenticação e Autorização,
se estivesse usando SPRING, meu problema estaria resolvido, o que não é o caso.

Alguém já utilizou o Apache Shiro com JSF 2, e observou algum problema na implementação?

Boa Noite @clebiovieira, olha pra te falar a vdd, nunca usei o apache Shiro.
Na verdade você falou dele, e fui olhar um exemplo,kkkkkkkk.
Mas, se voce quer Autenticação e Autorização, você pode sim Ultilizar o Spring Security !
Sem msm precisar que todas sua aplicação seja baseada no Framework Spring.
É sem dúvida o melhor do spring security, ele é completamente desaclopado, ou seja
você pode integra-lo com outros frameworks, recomendo de verdade, até msm pela
facilidade que ele provê !
Caso não queira, você pode ultilizar o que o java ee tem por padrão, Os Realms, servidores como o
wildfly, trabalham muito bem essa parte !

Bom Estudo !
Abraço !

Fala Delano, valeu pela postagem!!!

Eu quero utilizar um servlet container leve, não gostaria de utilizar wildfly no momento.

Eu realmente vi a possibilidade de trabalhar com Spring Security mas não tenho experiência do comportamento dele
com páginas que contenham Ajax.

No site do Spring eles sugerem o uso do Spring Flow junto com o security para fazer a integração.

Eu realmente estou receoso sobre a integração com Spring, pois vou utilizar CDI WELD para injeção de dependencia.

O spring security usa seu container e contextos diferentes. Esta é a questão.

Já utilizou em algum projeto JSF+WELD+Spring Security ?

Abraços!!!

A respeito do Apache Shiro, que por sinal dizem seu um projeto de primeiro nível da Apache.

Achei a documentação pobre pra ser sincero. Muito mesmo. Mas passei o dia e a madrugada de ontem fuçando fragmentos de código em uma porrada de lugar.

Consegui fazer funcionar a parte de Autenticação com Hash.
O primeiro problema é que não dá pra usar injeção de dependência e portanto, imagina instanciar um FactoryManager só para buscar um usuário no banco.

Agora vou tentar montar um esquema de autorização com as roles de usuário e por último tentar resolver o problema de performance.

Chegou ver esse tutorial do Balusc? http://balusc.omnifaces.org/2013/01/apache-shiro-is-it-ready-for-java-ee-6.html

Bem completo, único detalhe é que no tutorial ele replica a config de conexão no shiro e na aplicação, porém é possível criar a conexão por jndi e passar por injeção no arquivo.

:wink:

Fala ai Error(?que login? rs).

Eu tenho esse tutorial no meu favoritos, alias juntei um monte de informações. rs

Infelizmente ele não mostra como se faz a parte de autorização com roles e permissions.

Estou utilizando um artigo da Java Magazine que tem um trecho de código que mostra como fazer.
O problema é que lá estão usando Spring MVC e AspecJ… Porque diabos alguém usaria Apache Shiro quando já está usando Spring? Cada um com seu cada qual.

Agora estou pensando em uma solução para que a autorização não precise ficar indo no banco toda hora para buscar as permissões do usuário.

Preciso arrumar um jeito de consultar todas as roles e permissions do usuário, logo assim que ele se autenticar pela primeira vez e salvar isso numa collection.

A parada é como passar isso para minha classe que extend AuthorizingRealm, que é responsavel tanto pela autorização quanto pela autenticação.

Abraços !!!

(haha ironias da vida).
Então, não estou conseguindo acessar a devmedia agora, o site está dando erro =/

Brinquei com o Shiro, mas não fui tão a fundo, até onde entendi ele carregava tudo no login e mantinha em memória.

Depois só validava, quando usasse "SecurityUtils.getSubject().isPermitted(“permissao”);

Li uns tópicos dizendo que as versões novas do Spring Security estão mais independentes do Spring.
Ou seja os problemas de incompatibilidades foram sanados.

Vou fazer um laboratório aqui para testar também.

PicketLink e Ommini Security também são outros que gostaria de testar mas o primeiro nem sei se roda no tomcat.
Parece que a comunidade Java no Brasil não adotou, ninguém fala sobre.

Abraços !!!