Estoy usando Spring Security 3.0.4. Tengo un montón de servicios web que están protegidos por Spring Security. Cuando accedo a ellos como un usuario no autenticado, Spring Security redirige a la página de inicio de sesión. En lugar de eso, quiero devolver el error HTTP 403. ¿Cómo puedo lograr eso?Spring Security - necesita error 403, no redirige
Aquí está mi configuración de seguridad:
<http auto-config="false" use-expressions="true" >
<intercept-url pattern="/authorization.jsp" access="permitAll"/>
<intercept-url pattern="/registration.jsp" access="permitAll"/>
<intercept-url pattern="/api/authorization/auth" access="permitAll"/>
<intercept-url pattern="/api/authorization/new" access="permitAll"/>
<intercept-url pattern="/api/accounts/new" access="permitAll"/>
<intercept-url pattern="/app/**" access="permitAll"/>
<intercept-url pattern="/extjs/**" access="permitAll"/>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login login-page="/authorization.jsp"
default-target-url="/index.jsp"
authentication-failure-url="/registration.jsp?login_error=1"
always-use-default-target="true"
/>
<logout logout-success-url="/authorization.jsp"
logout-url="/j_spring_security_logout"
invalidate-session="true"/>
</http>
¿Ha intentado eliminar la configuración de "autenticación-error-url" en el inicio de sesión de su formulario? – Gandalf
¿Has encontrado una solución de trabajo? He escuchado que la forma de lograrlo es anulando "algunos filtros de Spring", pero sin ejemplo, y creo que debería ser posible configurarlo porque, p. Se espera que la aplicación AJAX desee hacer un registro personalizado en el canal JSON y los canales JSON para datos reaccionen con 403 sin ningún derecho de servicio. –
Relacionado: http://stackoverflow.com/questions/3339431/how-to-handle-expired-session-using-spring-security-and-jquery – usethe4ce