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

Spring security y roles dinámicos

Estas en el tema de Spring security y roles dinámicos en el foro de Java en Foros del Web. Buenas Estoy investigando el tema de la seguridad y los roles de Spring para conseguir hacer roles dinamicamente (por lo que no me vale poner ...
  #1 (permalink)  
Antiguo 05/08/2015, 02:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 13 años, 1 mes
Puntos: 0
Spring security y roles dinámicos

Buenas

Estoy investigando el tema de la seguridad y los roles de Spring para conseguir hacer roles dinamicamente (por lo que no me vale poner las urls con lo roles en el spring-security-context.xml) y después de conseguirlo parece ser que ahora no deja entrar a ningún usuario a esa url aunque tenga el rol asignado. Os dejo el código a ver si alguien tiene idea de que puede ser.

Código:
public class JdbcFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource {

	public Collection<ConfigAttribute> getAttributes(Object object) throws IllegalArgumentException {
        FilterInvocation fi = (FilterInvocation) object;

        String url = fi.getRequestUrl();
        HttpServletRequest request = fi.getHttpRequest();

        // Instead of hard coding the roles lookup the roles from the database using the url and/or HttpServletRequest
        // Do not forget to add caching of the lookup
        String[] roles = new String[]{};
        if("/person/list".equals(url)){
        	roles = new String[] { "ROLE_USER" };
        }
        return SecurityConfig.createList(roles);
    }

    public Collection<ConfigAttribute> getAllConfigAttributes() {
        return null;
    }

    public boolean supports(Class<?> clazz) {
        return FilterInvocation.class.isAssignableFrom(clazz);
    }
  }
Al iniciar la aplicación creo un usuario con el rol USER

Código:
accountRepository.save(new Account("[email protected]", "demo", "ROLE_USER"));
En principio consigo loguearme en la aplicación pero en cuanto llego a /person/list me da el siguiente error (basicamente es que me deniega el acceso por permisos)

Código:
2015-08-05 10:01:56.457 [localhost-startStop-1] WARN  o.s.s.c.h.DefaultFilterChainValidator - Anonymous access to the login page doesn't appear to be enabled. This is almost certainly an error. Please check your configuration allows unauthenticated access to the configured login page. (Simulated access was rejected: org.springframework.security.access.AccessDeniedException: Access is denied)
Saludos

Etiquetas: roles, security, spring, string
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 14:10.