entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Hola a tod@s. Estoy intentando asegurar un servicio REST usando Spring Security.

Para acceder al servicio REST con autenticación estoy usando la extensión de Firefox RESTClient y, al realizar la petición Spring me lanza el siguiente error:

org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext.

Estoy usando "global-method-security" para asegurar los métodos anotados con "@Secured".

Ésta es una parte del archivo web.xml:

[...]
<filter>
   <filter-name>springSecurityFilterChain</filter-name>
   <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

Éste es un fragmento del archivo de configuración de SpringSecurity:

[...]

<security:http auto-config="true">
</security:http>

<security:global-method-security secured-annotations="enabled">

<security:authentication-manager>
    <security:authentication-provider user-service-ref="userService">
   </security:authentication-provider>
</security:authentication-manager>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    <property name="driverClassName" value="com.mysql.jdbc.Driver">
    <property name="url" value="jdbc:mysql://localhost:3306/example">
    <property name="username" value="root">
    <property name="password" value="">
</bean>

<security:jdbc-user-service id="userService" data-source-ref="dataSource" users-by-username-query="select email as username, claveAcceso as password, true as enabled from usuarios
    join usuarios_privado on usuarios.idUsuario = usuarios_privado.idUsuario
    and email=?" authorities-by-username-query="select email as username, rol as authorities from usuarios where email=?">

Y esto es el método de la clase UsuarioDAO.java que quiero asegurar:

[...]
@Secured("hasRole('USUARIO')")
@Transactional
public Usuario get(Integer id) {
    Session session = sessionFactory.getCurrentSession();
    return (Usuario)session.get(Usuario.class, id);
}

He revisado muchos lugares en internet y he probado multitud de configuraciones pero sigo obteniendo el mismo error.

¿Alguien sabría decirme dónde está el problema?

¡Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta