2016-03-21 149 views
0

我是使用Spring Session和Spring Security的新手。希望能得到幫助。我想在REST API上使用Spring Session和Spring Security,並使用Redis存儲會話信息。我遵循http://docs.spring.io/spring-session/docs/current/reference/html5/guides/rest.html的示例但我使用的是XML而不是Java類,我使用的是Spring 3.2.4。Spring Session Spring Rest Rest API和Redis

當我使用curl和username:password時,沒有任何問題,x-auth-token保存在Redis中,並且頭部獲得200 ok。 但是,使用curl時,如果沒有用戶名和密碼,就會遇到問題。 401未經授權,但在標題中返回了x-auth-token,並且它也保存在Redis中
< HTTP/1.1 401 Unauthorized * Server Apache-Coyote/1.1 is not blacklisted < Server: Apache-Coyote/1.1 < x-auth-token: 71554566-17d3-44ca-94b8-009d090c61a1 < Content-Type: text/html;charset=utf-8 < Content-Language: en < Content-Length: 1018 < Date: Mon, 21 Mar 2016 14:40:18 GMT

回答

0

我猜這是由於前一個請求正在保存的事實。您可以使用NullRequestCache修復此問題。在XML中,您可以利用<request-cache>。配置看起來類似:

<http ...> 

    <request-cache ref="requestCache"/> 
</http> 

<b:bean id="requestCache" class="org.springframework.security.web.savedrequest.NullRequestCache"/> 
+0

謝謝,它的工作原理。這個問題已經困擾了我好幾天了。 – user6094158