Saludos!

Cuando trato de autenticación en contra de mi existentes db estoy recibiendo autenticado pero tengo la página 403. Si acabo de intentar una contraseña incorrecta me dan mal las credenciales de’ mensaje como se esperaba.
Traté de autenticación por aplicación de ejemplo que se incluye con SpringSecurity y que funcionaba bien.

security-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans
    xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">

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

    <http auto-config="true" >
        <intercept-url pattern="/admin/**" access="ROLE_TEST" />
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />

        <form-login
            login-page="/login/index.jsp"
            default-target-url="/admin/test.jsp"
            authentication-failure-url="/login/index.jsp?login_error=1" />  
    </http>

    <authentication-provider user-service-ref="jdbcUserService">      
        <password-encoder ref="passwordEncoder">
                <salt-source system-wide="n103df"/>
        </password-encoder>        
    </authentication-provider>


    <beans:bean id="jdbcUserService"  class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
        <beans:property name="rolePrefix" value="" />
        <beans:property name="dataSource" ref="dataSource" />
        <beans:property name="enableAuthorities" value="true"/>
        <beans:property name="enableGroups" value="false"/>
        <beans:property name="authoritiesByUsernameQuery" value="SELECT username,authority FROM authorities WHERE username = ?" />
        <beans:property name="usersByUsernameQuery" value="SELECT username,password,enabled as enabled FROM users WHERE username = ?" />
        <beans:property name="groupAuthoritiesByUsernameQuery" value="" />

    </beans:bean>

<beans:bean id="passwordEncoder" class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/>

Le agradezco cualquier ayuda 🙂
Gracias de antemano!

InformationsquelleAutor vector | 2009-08-14

2 Comentarios

  1. 40

    Si usted está recibiendo un 403 código, significa que el usuario no tiene los roles necesarios. Así, athentication no es el problema, es la autorización.

    La única manera de saber lo que está pasando es poner el nivel de registro de depuración, debería haber más información. Publicar aquí.

    Hace sus funciones tienen el ‘ROLE_’ prefijo?

  2. 2

    … lo imaginé. A pesar de tener ROLE_TEST especificado en el archivo de configuración y el mismo en la «autoridad» de la columna de la db, Primavera-Sec estaba esperando ROLE_SUPERVISOR:

    [DEBUG,AbstractSecurityInterceptor,http-8084-7] objeto Seguro: FilterInvocation: URL: /admin/prueba.jsp; ConfigAttributes: [ROLE_TEST] 
    [DEBUG,AbstractSecurityInterceptor,http-8084-7] Autenticado Previamente: org.springf[email protected]af840ed7 Directora: [email protected]: nombre de Usuario: usuario de prueba; Contraseña: [PROTEGIDOS]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Concede a las Autoridades: ROLE_SUPERVISOR; Contraseña: [PROTEGIDOS]; Autenticado: true; Detalles: [email protected]: RemoteIpAddress: 127.0.0.1; SessionId: 350B260FAFDDBF04D5CB4AAAB7B8A441; Concede a las Autoridades: ROLE_SUPERVISOR 
    [DEBUG,filtro exceptiontranslationfilter,http-8084-7] se deniega el Acceso (usuario no es anónimo); delegar a AccessDeniedHandler 
    org.springframework.de seguridad.AccessDeniedException: Acceso denegado 
    en org.springframework.de seguridad.el voto.AffirmativeBased.decidir(AffirmativeBased.java:68) 
    

    … ahora tengo curiosidad, ¿cómo?
    Así que después de cambiar ROLE_TEST a ROLE_SUPERVISOR en el archivo de configuración en todo funcionó como se esperaba.

    • …. Me di cuenta hoy que todo este tiempo yo estaba buscando en el lugar equivocado db, ‘nough, dijo. Thaks un montón a pesar de que, sí ayuda!

Dejar respuesta

Please enter your comment!
Please enter your name here