Spring Security 4 + JSF | .jdbcAuthentication não funciona (HELP)
3 respostas
clebiovieira
Pessoal estou tentando configurar minha aplicação para utilizar: JSF 2.2 + WELD + Spring Security 4 + Hibernate 5
No site do Spring, é dito que você pode utilizar o módulo de segurança sem precisar do módulo WebMVC ou qualquer outro módulo Spring Acoplado.
Consegui fazer a autenticação funcionar com o famoso .inMemoryAuthentication() mas é lógico que preciso
trazer essas informações de um banco de dados.
Existe uma forma de autenticar que é utilizando o .jdbcAuthentication(), para isso basta que você siga as regras
se colunas nas query e que você tenha um unico parametro chamado: username
Reparem que é necessário informar um DataSource e é ai que o problema começa.
No primeiro momento criei um Datasource no Tomcat 8 configurando o context.xml e web.xml da minha aplicação
Para fazer uso do Spring Security precisei criar duas classes basicamente, uma que habilita os filtros do spring automaticamente e outra que cuida da parte de segurança propriamente dita. Mas a frente vocês verão as classes.
Voltando ao problema
Se eu preciso de um DataSource e os contextos entre CDI e Spring são distintos, não poderei fazer isso por @Inject do CDI.
Resolvi então criar o DataSource JNDI pois achei que resolveria meu problema o que não ocorreu.
E tentei utiliza-lo na minha classe SecurityConfig assim: NÃO FUNCIONOU
Depois no desespero , resolvi criar um DriverManagerDataSource do proprio Spring
por achar que eu estava esquecendo alguma coisa relativa aos contextos. Também não funcionou.
Minha última tentativa foi tentar criar um ApplicationContext para o Spring:
Também não funcionou.
Neste exato momento estou pensando em jogar meu laptop pela janela.
E assim fica relatado meu desespero para que outros colegas tentem ajudar ou não passem por coisa parecida.
Fala amigo, estou no mesmo dilema. Por ventura já conseguiu resolver???
clebiovieira
Infelizmente parei de tentar na época… Preferi utilizar o picketlink que é amplamente compatível com o JAVA EE.
Conceitualmente ambos possuem filtros, roles , grupos e etc… A única coisa bem peculiar no picketlink, é a forma como ele faz a modelagem das entidades no banco.
Se achar a solução e quiser compartilhar aqui, agradeço. Vai ajudar muita gente e com certeza irei estuda-la.