Une exception SerializationException s'est produite lors de l'exécution sur Heroku avec une combinaison de Spring Boot (série 1) + spring-security-oauth2 + Redis Session. (Cela ne se produit pas avec une seule instance. Seulement avec plusieurs instances)
À propos, si vous utilisez la série Spring Boot 2 (série Spring 5), vous devez utiliser la série Spring Security 5. (Pas essayé) Il est préférable qu'il puisse être mis à niveau vers la série Spring Boot 2 (série Spring 5).
Le problème semble être dans spring-security-oauth2. Il y a deux solutions qui sont sorties sur Google
Si ce n'est que 1, étant donné que SerializationException se produit fréquemment sur Heroku, il est presque impossible de maintenir l'état de connexion. Dans le cas de seulement 2, cela n'a pas de sens d'avoir plusieurs instances, et lorsque le redémarrage s'exécute, une SerializationException se produit toujours.
Par conséquent, les deux mesures ont été prises. La session n'expire que lors du déploiement et du redémarrage de l'instance Heroku, mais j'ai décidé de l'utiliser pendant un certain temps.
Cependant, je ne sais pas quand Heroku sera redémarré (il peut être contrôlé dans une certaine mesure en redémarrant à tout moment). Les déconnexions fréquentes sont stressantes pour les utilisateurs.
Pour éviter cela, j'ai décidé de faire moi-même un traitement. J'ai également décidé de le publier en tant que bibliothèque. -> Bibliothèque créée
<dependency>
<groupId>jp.co.ap-com</groupId>
<artifactId>spring-oauth2-serializable</artifactId>
<version>0.0.2</version>
</dependency>
Si spring-security-oauth2 a été défini, le code source remplace simplement «@ EnableOAuth2Sso» par «@ EnableOAuth2Serializable».
Cependant, cela ne sert à rien si @ EnableOAuth2Sso
ou @ EnableOAuth2Client
reste même au même endroit.
Cliquez ici pour l'application de démonstration https://github.com/apc-hattori/spring-oauth2-demo
Cliquez ici pour la différence lors de la modification à partir du moment de seulement spring-security-oauth2 https://github.com/apc-hattori/spring-oauth2-demo/compare/use-spring-security-oauth2...master
Recommended Posts