2017-08-08 4 views
0

J'ai un serveur web qui utilise Jetty en dessous avec l'authentificateur SPNEGO et le service de connexion. J'utilise Firefox pour me connecter à ce serveur web et je peux voir que l'authentification se passe correctement. Mais le problème est que chaque demande d'authentification de client Web se produit encore et encore, plutôt que seulement à la première demande. Est-ce que Jetty stocke des informations permettant de différencier un utilisateur authentifié d'un utilisateur non authentifié? Si non, alors quelqu'un peut-il m'aider à recommander comment je peux y arriver? Qu'est-ce que cela signifie de se déconnecter d'un utilisateur déjà authentifié avec SPNEGO?Éviter l'authentification SPNEGO pour chaque requête

Répondre

1

Le problème n'est pas l'authentification SPNEGO, mais la façon dont vous gérez la session.

Une fois authentifié, créez une session HTTP et ajoutez les détails de l'utilisateur à la session, puis utilisez un filtre pour vérifier la présence d'une session valide. Sinon, l'authentification ignore l'authentification.

+0

Merci pour votre réponse. Aussi, je vois dans ServletContextHandler qu'il n'y a qu'un gestionnaire de sécurité qui peut être défini. Existe-t-il un moyen de définir plusieurs gestionnaires de sécurité? Je pensais si je peux créer un WrapperSecurityHandler et composer 2 gestionnaires de sécurité à l'intérieur. Ensuite, en fonction du type de requête, utilisez le gestionnaire de sécurité spécifique dans WrapperSecurityHandler pour effectuer l'authentification. Ensuite, je peux juste définir ce WrapperSecurityHandler comme gestionnaire de sécurité de ServletContextHandler. Mais je suis confronté à des problèmes dans cette approche et je me demandais s'il y avait une autre façon ou une limite dans Jetty. – Anonym