2017-08-22 1 views
1

Je suis en train d'introduire la sécurité de printemps à l'application angularjs. L'arrière utilise un cadre de ressort. J'ai utilisé la méthodologie expliquée ici pour la sécurité back-end.Spring boot + printemps sécurité + réplication de session noisette ne pouvait pas le faire

https://samerabdelkafi.wordpress.com/2016/01/25/secure-angularjs-application-with-spring-security/

Cela fonctionne bien avec seule instance d'application.

Le problème est que l'application est en cluster et que les sessions doivent donc être répliquées.

J'ai essayé d'utiliser Hazelcast pour la réplication de la session comme expliqué ici:

https://dzone.com/articles/spring-boot-hazelcast-for-session-replication

Lorsque je présente Hazelcast, premier Authentifier réussit. Après cela, la première demande est également réussie. Mais après cela, il semble que

org.springframework.security.web.context.HttpSessionSecurityContextRepository ne peut pas trouver la session ...

Comme je l'ai dit commencé à se produire après que je configure com.hazelcast.web.WebFilter pour la réplication de sesion comme ci-dessous:

@Bean 
public WebFilter webFilter(HazelcastInstance hazelcastInstance) { 

    Properties properties = new Properties(); 
    properties.put("instance-name", hazelcastInstance.getName()); 
    properties.put("sticky-session", "true"); 

    return new WebFilter(properties); 
} 

Voici les journaux associés:

2017-08-22 15: 17: 31593: [Debug] [http-nio-7023-exec-2] [HttpSessionSecurityContextRepository ] Aucune session Http n'existe actuellement

2017-08-22 15: 17: 31,593: [DEBUG] [http-nio-7023-exec-2] [HttpSessionSecurityContextRepository] Aucun SecurityContext n'était disponible à partir du HttpSession: null. Un nouveau sera créé.

Je suis sûr que le client envoie le même cookie après connexion Successfull

Je ne pouvais pas comprendre la raison. Toute orientation est appréciée.

+0

Bonjour, J'ai écrit l'article DZone que vous avez référencé. Heureux de vous aider à diagnostiquer. Êtes-vous capable de créer un https://stackoverflow.com/help/mcve? par exemple. sur Github ou similaire –

+0

Avez-vous compris comment le faire fonctionner de votre côté? –

+0

Avez-vous eu ce travail @simpleusr? –

Répondre