Como pode observar, eu também não estou misturando modelo com segurança.
A minha classe DAO é o service que ele utiliza... A modelagem é a mesma.
Abs
De: Lessandro Notaroberto Pyrâmides [mailto:lessandron...@gmail.com]
Enviada em: terça-feira, 11 de janeiro de 2011 12:13
Para: jav...@googlegroups.com
Assunto: Spring Security e MD5
Olá pessoal, bom dia.
Estou tentando integrar a criptografia MD5 no spring security através do arquivo de configuração
xml, porém não estou conseguindo.
Alguém tem alguma dica de como realizar essa criptografia?
Já tentei algo nesse sentido, mas a autenticação não funcionou. Quando coloco uma senha desencriptografada o sistema
autentica normalmente. Segue um trecho da configuração:
<sec:authentication-manager>
<sec:authentication-provider user-service-ref="usuarioDAO" ref="daoAuthenticationProvider">
<password-encoder hash="md5" />
<sec:authentication-provider />
</sec:authentication-manager>
<bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="usuarioDAO" />
</bean>
Agradeço desde já,
Att,
Lessandro
--Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
Então, boa tarde a todos...
Então, usei o mesmo esquema de implementação seu, porém estou tendo o seguinte problema.
Ao entrar no método loadUserByUsername() ele está entrando nesse método da classe AbstractUserDetailsAuthenticationProvider:
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
E posteriormente nesse try caindo na exceção:
try {
preAuthenticationChecks.check(user);
additionalAuthenticationChecks(user, (UsernamePasswordAuthenticationToken) authentication);
} catch (AuthenticationException exception) {
if (cacheWasUsed) {
// There was a problem, so try again after checking
// we're using latest data (i.e. not from the cache)
cacheWasUsed = false;
user = retrieveUser(username, (UsernamePasswordAuthenticationToken) authentication);
preAuthenticationChecks.check(user);
additionalAuthenticationChecks(user, (UsernamePasswordAuthenticationToken) authentication);
} else {
throw exception;
}
Essa exceção está retornando "Bad credentials".
O mais interessante que isso ocorre apenas quando utilizo criptografia.
Alguém sabe o porque disso estar ocorrendo e como resolver?
Att,
Abs,
Lessandro
Mas ela está, senha 123:
INSERT INTO `tb_usuario` (`ID_USUARIO`, `DS_BAIRRO`, `DS_CIDADE`, `DS_ESTADO`, `DS_LOGIN`, `DS_RUA`, `DS_SENHA`, `NM_USUARIO`, `NU_CEP`, `NU_CPF`, `NU_LOCAL`, `NU_TEL_CONTATO`, `NU_TEL_FIXO`, `ID_PERFIL`) VALUES (1, 'MADRE TERESA', 'JUIZ DE FORA', 'MG', 'teste', 'XXXXXXXXXX', '202CB962AC59075B964B07152D234B70', 'USUARIO TESTE', NULL, '11111111111', 25, 3232111111, 3232111111, 1);
Abs,
Lessandro
Olá Davinir, obrigado pela ressalva, não havia me atentado para isso.
‘202CB962AC59075B964B07152D234B70’
‘202cb962ac59075b964b07152d234b70’
E como colocar em caixa alta no xml do spring-security antes de fazer a checagem?
Porque na minha base estou gravando tudo em caixa alta.
Antes como não utilizava o Security a minha função retornava esse cara em caixa alta.
Porque não seria uma boa prática?
Qual a diferença?
Ok, a implementação usando case-sensitive funcionou perfeitamente.
Mediante o usuário autenticado pelo spring, tem como recuperá-lo para que eu possa colocá-lo num painel
onde seja exibido: Seja bem vindo: Usuário xxxx
return
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
--
Sent from my Personal Computer. Haters gonna hate
-----Mensagem original-----
De: jav...@googlegroups.com [mailto:jav...@googlegroups.com] Em nome de Luiz
Enviada em: quarta-feira, 12 de janeiro de 2011 08:03
Para: jav...@googlegroups.com
Assunto: Re: [javasf] RES: Spring Security e MD5
vc pode pegar o usuário logado assim:
return
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
--
Sent from my Personal Computer. Haters gonna hate
--