Ich benutze Spring Security 3.0.4. Ich habe eine Reihe von Webdiensten, die von Spring Security geschützt sind. Wenn ich auf sie als nicht authentifizierter Benutzer zugreife, leitet Spring Security zur Anmeldeseite um. Stattdessen möchte ich HTTP 403 Fehler zurückgeben. Wie kann ich das erreichen?Spring Security - brauche 403 Fehler, nicht umleiten
Hier ist meine Sicherheit config:
<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>
Haben Sie versucht, die Einstellung "authentication-failure-url" in Ihrem Formular-Login zu entfernen? – Gandalf
Haben Sie eine funktionierende Lösung gefunden? Ich habe gehört, dass der Weg, dies zu erreichen, darin besteht, 'einige Spring-Filter' außer Kraft zu setzen, aber ohne Beispiel, und ich denke, dass es möglich sein sollte, zu konfigurieren, weil z.B. AJAX-Anwendung gerne benutzerdefinierte Anmeldung an JSON-Kanal und JSON-Kanäle für Daten werden voraussichtlich mit 403 auf keine Rechte an Service zu reagieren. –
Related: http://stackoverflow.com/questions/3339431/how-to-handle-expired-session-using-spring-security-and-jquery – usethe4ce