Rest basic-Authentifizierung über spring security ohne form-login
Ich bin versuchen, um eine restful-web-service verwendet wird, die von anderen web services. Ideal, wenn ein client auf den service zugreifen, und nicht authentifiziert sind, sollten Sie bekommen eine 401. Ich möchten, dass ein Benutzer authentifiziert werden können, indem ein authentication header der Anfrage. Ich will nicht, dass die Benutzer füllen ein login-Formular und post. Ich habe auch nicht wollen, es zu speichern alle Anmeldedaten in einem cookie (dh den Status zu halten) sollte es alle in der auth-header senden mit jeder Anfrage. Ich habe verwendet, spring roo zum erstellen des web service.
Was ich derzeit habe, (stammt von einer der spring security 3.1-tutorials), wenn der Benutzer bekommt einen 401 -, Sie sind gefragt mit einem login-Seite, und dann nach der Seite, bekommen Sie ein cookie, das Sie senden mit jeder Anforderung.
Ist hier mein spring security xml.
<http use-expressions="true">
<intercept-url pattern="/customers/**" access="isAuthenticated()" />
<intercept-url pattern="/**" access="denyAll" />
<form-login />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="alice" password="other" authorities="user" />
<user name="custome1" password="other" authorities="user" />
</user-service>
</authentication-provider>
</authentication-manager>
Wenn ich senden Sie eine Anfrage von LOCKE, bekomme ich die folgende:
$ curl -i -H "Accept: application/json" -H "Authorization: Basic Y3VzdG9tZXIxOm90aGVy" http://localhost:8080/Secured/customers
HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=B4F983464F68199FA0160DBE6279F440; Path=/Secured/; HttpOnly
Location: http://localhost:8080/Secured/spring_security_login;jsessionid=B4F983464F68199FA0160DBE6279F440
Content-Length: 0
Date: Thu, 25 Apr 2013 17:18:48 GMT
wo meine basic-header-token base64(customer1:andere)
Wie kann ich die web-service zu akzeptieren, der auth-header, und keine Umleitung mich zu einer login-Seite?
Wenn ich entfernen Sie die von security.xml ich bekomme die folgende:
excpetion:org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: No AuthenticationEntryPoint could be established.
Please make sure you have a login mechanism configured through the namespace
(such as form-login) or specify a custom AuthenticationEntryPoint with the
'entry-point-ref' attribute
InformationsquelleAutor Andy N | 2013-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Musste ich entfernen
<form-login>
und fügen Sie<http-basic>
. Auch Hinzugefügt create-session-"staatenlos" zu meiner config.InformationsquelleAutor Andy N
Hier ist ein Beispiel für nicht-xml-Konfiguration für die Rest-Authentifizierung oder mit der form oder mit basic, was immer gebraucht wird:
ist die Magie! ))
InformationsquelleAutor Andrey
Folgen Sie diesem test demo von jax-rs mit spring security
http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/jax_rs/spring_security/
dies ist einfacher Ansatz für die Authentifizierung ohne die Förderung von Anmeldeinformationen.
können Sie gehen mit der Umsetzung
RequestHandler
und überschreibenFolgen : http://cxf.apache.org/docs/secure-jax-rs-services.html für komplett-set-Ansatz.
InformationsquelleAutor Jayaram