7
respostas

OUTRA OPÇÃO AO SPRING SECURITY

Qual seria a opção diferente ao Spring Security, mas que atenda a mesma necessidade? Estou seguindo a aula, mas estou fazendo de forma diferente, não estou usando o hibernate, ou seja, estou criando minhas próprias tabelas com procedures para realizar updates, inserts, deletes e selects. Cheguei na parte do Spring Security, mas não consegui implementar da forma que estou fazendo, só achei exemplos parecidos com o que tem em aula.

Gostaria de saber se teria uma outra forma de usar essas mesmas funcionalidades, se possível me indiquem algo para pesquisar.

Obrigado!!!

7 respostas

Oi Daniel, engraçado que eu acho possível usar o Spring Security mesmo nessa sua situação. O método que verifica a existência do usuário, na verdade, vai disparar sua stored procedure e pegar o retorno.. perceba que na configuração ele não te exige hibernate ou qualquer outra coisa... é tudo baseado em interface.

Ah, perdão porque não respondi sua pergunta original. Eu não conheço outra opção do mesmo nível, por isso não tenho nada para indicar.

Alberto, obrigado pela resposta. Estou conseguindo fazer usando o Spring Security, mas estou com problemas para fazer o login. Na minha procedure quando cadastro um usuário eu já faço uma encriptação da senha do usuário. E quando eu quero logar eu descriptografo a senha e comparo com a fornecida. Quando eu clico em Login eu entro no meu método dao e ele vai e traz o usuário, porém não autentica. Qual seria a melhor forma de tratar isso? Eu criei dois metodos dentro da procedure um traz a senha já descriptografada e outro não, mas nenhum funciona.

Opa Daniel, aí realmente deu uma azedada :(. O Spring Security espera que ele aplique o hash na senha passada pelo usuário e compare com a senha hasheada que está no banco. Ainda acho que o jeito mais recomendado é você tirar essa complexidade do seu código... O trabalho um pouco maior aí seria você fazer um código que pegue todas as senhas, descriptografe e aplique o algoritmo de hash sugerido pelo spring security, em geral o bcrypt.

Outro detalhe de segurança é que tende a ser má prática você saber a senha dos seus usuários. Por isso que é mais recomendado aplicar um algoritmo de hash que não tem mais volta.

Alberto, eu encripto a senha dentro do banco na procedure. Quando é feito o cadastro a senha é criptografada. Estou pensando eu em usar o BCrypt para gerar a senha no momento do cadastro do usuário na aplicação. A minha dúvida é se gerando a senha com BCrypt a autenticação funcionário dessa forma que é mostrada em aula ou se é outro tipo de criptografia que é feita?

Ah, calma ê.. agora que eu saquei.. deve funcionar das duas formas.. a encriptação e decriptação é feita na procedure né? Então deve rolar de boa... o spring security não vai nem saber o que aconteceu..

de todo jeito, dado que você vai usar o bcrypt, acho que realmente não era necessário esse encriptação.

Beleza, vou usar o BCrypt para encriptar a senha no momento do cadastro do usuário.