Foros del Web » Programación para mayores de 30 ;) » Java »

Conexión DAO para Spring Security

Estas en el tema de Conexión DAO para Spring Security en el foro de Java en Foros del Web. Hola, necesito un código de ejemplo para saber cómo configurar spring security, específicamente el DAO Authentication Provider a través de su método loadUserByUsername, tengo problemas ...
  #1 (permalink)  
Antiguo 16/11/2010, 13:54
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 10 años, 4 meses
Puntos: 0
Conexión DAO para Spring Security

Hola, necesito un código de ejemplo para saber cómo configurar spring security, específicamente el DAO Authentication Provider a través de su método loadUserByUsername, tengo problemas al configurar el archivo security.xml, estoy tratando de poner el objeto "Authentication" dentro de una clase UsuarioDAO que tiene el método:

UsuarioDao.java:
Código:
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;

Pero me arroja una excepción en esta parte del security.xml:
Código HTML:
 <authentication-provider user-service-ref="userDao">
           <password-encoder ref="passwordEncoder"/>
       </authentication-provider>       

      <beans:bean id="UserDaoWs" class="com.mipackage.UsuarioDao">
       
      </beans:bean> 
Algún link?? (llevo 3 días googleando, ya me he visto la documentación on line y hasta un libro de spring in action me mamé).

Por favor! Alguien que sepa o pueda darme un dato, saludos...
  #2 (permalink)  
Antiguo 17/11/2010, 11:37
ssh
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Conexión DAO para Spring Security

Ya encontré algo:

security.xml

Código HTML:
 <authentication-provider user-service-ref="userDao">
            <password-encoder ref="passwordEncoder"/>
         </authentication-provider>

         <beans:bean id="dbUserService" class="paquete.UserDaoJava">
            <beans:property name="userDao" ref="userDao" />
         </beans:bean> 
UserDetailsService.java

package com.opensistemas.app.dao;

Código PHP:
import org.springframework.dao.DataAccessException;
import org.springframework.security.providers.ProviderManager;
import org.springframework.security.userdetails.UserDetails;
import org.springframework.security.userdetails.UsernameNotFoundException;

public interface 
UserDetailsService {
   
UserDetails loadUserByUsername(String username)
   
throws UsernameNotFoundExceptionDataAccessException;

UserDaoJava.java

Código PHP:
import org.springframework.beans.InvalidPropertyException;
import org.springframework.dao.DataAccessException;
import org.springframework.security.Authentication;
import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.userdetails.UserDetails;
import org.springframework.security.userdetails.UsernameNotFoundException;

public class 
UserDaoJava implements UserDetailsService {

   public 
Authentication userDao;

   public 
UserDaoWs() {
      
System.out.println("INI CONSTRUCTOR USERDAOWS");     
  
   }
   
           
   public 
UserDetails loadUserByUsername(String usernamethrows UsernameNotFoundExceptionDataAccessExceptionInvalidPropertyException {
           
          
//Cómo rescato el username aquí!!!!
          
System.out.println("Username USER_DAO: "username);
          
System.out.println("USUARIO?: "userDao.getPrincipal().toString());

      throw new 
UnsupportedOperationException("Not supported yet.");
   }

   
//Con los getters & setters toma el valor desde security.xml (Inyección)

   
public Authentication getUserDao() {
      return 
userDao;
   }

   public 
void setUserDao(Authentication userDao) {
      
this.userDao userDao;
   }

Necesito ayuda urgente con esto por favor, si alguien sabe y se maneja.
Compila bien, pasa por el constructor de esta clase, pero no sé cómo obtener el valor del username.

Ayuda. Por favor :(

Última edición por ssh; 17/11/2010 a las 11:48

Etiquetas: dao, security, spring
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.