2016-03-21 1 views
0

Je suis novice dans l'utilisation de Spring Session et Spring Security. L'espoir peut obtenir de l'aide. Je souhaite utiliser Spring Session et Spring Security sur l'API REST et utiliser Redis pour stocker les informations de session. J'ai suivi l'exemple de http://docs.spring.io/spring-session/docs/current/reference/html5/guides/rest.html Mais j'utilise xml au lieu de la classe Java et j'utilise Spring 3.2.4.Spring Spring Spring Rest API et Redis

Il n'y a pas de problème quand j'utilise curl avec nom d'utilisateur: mot de passe, x-auth-token est enregistré dans Redis et 200 ok est obtenu dans l'en-tête. Cependant, un problème est rencontré lorsque j'utilise curl SANS nom d'utilisateur et mot de passe. 401 non autorisé est obtenu, mais il y a x-auth-jeton retourné dans l'en-tête et il est également enregistré dans 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

Répondre

0

Je devine que cela est dû au fait que la demande précédente est en cours d'enregistrement. Vous pouvez résoudre ce problème en utilisant NullRequestCache. En XML, vous pouvez tirer parti de <request-cache>. La configuration ressemble à:

<http ...> 

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

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

Merci, cela fonctionne. Ce problème m'a déjà hanté pendant plusieurs jours. – user6094158