Spring Security + Hibernate (Reescrever UserDetails)

6 respostas
R

Lendo no guia de referencia, diz que eu tenho que reescrecer o user details para utilizar o hibernate com o spring security, como eu faço isso?
Alguem tem um exemplo?

6 Respostas

hodrigohamalho

Rafael, tu conseguiu resolver?

juniorsatanas

Conseguiu Resolver ?

package util.security;
 
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.userdetails.jdbc.JdbcDaoImpl;
import org.springframework.dao.DataAccessException;
 
public class AuthenticationJdbcDaoImpl extends JdbcDaoImpl {   
    private String[] userInfoObjectTypes;    
    private static final SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
 
    @Override
    public UserDetails loadUserByUsername(String username) {
	try {
            UserDetails user = super.loadUserByUsername(username);
	    Session session = sessionFactory.openSession();  
	    for (int i = 0; i < userInfoObjects.length; i++) {
		Object userInfo = session.createQuery("from " + userInfoObjects[i] + " where username = '" + username + "'").uniqueResult();
		if(userInfo != null)
		    return new CustomUser(user.getUsername(), user.getPassword(), user.isEnabled(), user.getAuthorities(), userInfo);
	    }
	    return new CustomUser(user.getUsername(), user.getPassword(), user.isEnabled(), user.getAuthorities());         
	} catch (UsernameNotFoundException ex1) {
	    ex1.printStackTrace();
	    throw ex1;
	} catch (DataAccessException ex2) {
	    ex2.printStackTrace();
	    throw ex2;
	}
    }
 
    public void setUserInfoObjectTypes(String[] userInfoObjectTypes) {
	this.userInfoObjectTypes = userInfoObjectTypes;
    }
}
hodrigohamalho

E depois te muito tempo… huahua

juniorsatanas

hodrigohamalho como ficou ?

to com esse problema no Vraptor + Spring Security !

hodrigohamalho

Cara, não tenho mais o projeto em que fiz isso…
Mas tem um excelente tutorial de como integrar Vraptor + Spring Security: http://dkist.k2studio.com.br/2010/09/09/spring-security/

juniorsatanas

Obrigado amigao, a integração eu já fiz meu problema é somente esse mesmo…

Abraço e bom trabalho ai…

jr

Criado 24 de novembro de 2008
Ultima resposta 14 de abr. de 2011
Respostas 6
Participantes 3