J'ai créé un serveur API pour les appels mobiles, utilisé Spring Session pour connecter Redis afin de partager des sessions avec plusieurs Tomcats, utilisé la sécurité pour intercepter les autorisations API et utilisé x-auth-token, qui est la vérification du jeton de l'en-tête. Maintenant, je rencontre un problème. Certaines API ne sont pas autorisées pour la vérification. Cependant, lors de l'accès à ces API, Spring créera une session pour chaque requête et renverra un nouveau jeton x-auth. Cela peut entraîner un trop grand nombre de sessions. moi. Comment le configurer pour que cette situation ne nécessite pas de créer une session ? Create-session="never" a été configuré, mais cela ne fonctionne pas. Voici la configuration de sécurité
séance de printemps
... 省略redis pool配置
J'ai trouvé la raison. Ouvrez d'abord la trace du journal, puis tracez org.springframework. À ce stade, vous pouvez voir qu'il y aura un journal à chaque fois qu'une nouvelle session est créée, et spring imprimera la pile de création de session.
Vous pouvez y trouver la ligne xxx.xxxx. Vérifiez le code dans la ligne 52 de LogFilter et constatez que req.getSession() est appelé bien que create-session soit configuré avec never, s'il existe du code qui appelle req.getSession(). , le printemps en créera toujours une nouvelle. Essayez de ne pas appeler req.getSession() dans les intercepteurs globaux tels que les filtres, sinon une nouvelle session sera créée à tout moment