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

Schreibe einen Kommentar