Próbuję utworzyć spokojną usługę internetową, która będzie używana przez inne usługi internetowe. Idealnie, gdy klient uzyskuje dostęp do usługi i nie jest uwierzytelniony, powinien uzyskać numer 401. Chcę, aby użytkownik był w stanie uwierzytelnić, dodając nagłówek uwierzytelniania do żądania. Nie chcę, aby użytkownik wypełnił formularz logowania i opublikował to. Nie chcę również, aby zapisywał jakiekolwiek dane logowania w pliku cookie (tj. Utrzymywanie stanu), a wszystkie powinny znajdować się w nagłówku auth wysyłanym przy każdym żądaniu. Użyłem spring roo do stworzenia usługi sieciowej.Reszta uwierzytelniania podstawowego za pomocą zabezpieczeń sprężynowych bez logowania się za pomocą formularza
Co mam obecnie (pobrane z jednego z wiosennych samouczków bezpieczeństwa 3.1), kiedy użytkownik otrzymuje 401, są one oznaczone stroną logowania, a następnie opublikować stronę, otrzymując plik cookie, który wysyłają z każdym z nich. żądanie.
Oto mój xml bezpieczeństwa wiosny.
<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>
Kiedy wysłać żądanie loków, pojawia się następujący:
$ 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
gdzie mój podstawowy znacznik nagłówka jest base64 (customer1: inne)
Jak mogę uzyskać usługę internetową zaakceptować nagłówek auth i nie przekierować mnie na stronę logowania?
Po usunięciu pliku security.xml otrzymuję następujący wyjątek: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Problem konfiguracji: Nie można ustanowić AuthenticationEntryPoint. Upewnij się, że masz mechanizm logowania skonfigurowany w przestrzeni nazw (np. Logowanie do formularza) lub określ niestandardowy adres AuthenticationEntryPoint z atrybutem "entry-point-ref".