Je fais un plugin (en JAVA) pour shibboleth idp. Dans le plugin, j'ai besoin d'obtenir les attributs de l'utilisateur si l'utilisateur est authentifié. J'utilise un filtre (pattern/profile/*) pour traiter la requête, mais aucun des attributs utilisateur n'est stocké dans les attributs ou en-tête de la requête, comment puis-je récupérer les attributs de l'utilisateur dans le code Java si l'utilisateur est authentifié?shibboleth idp obtenir les attributs de l'utilisateur
Répondre
Vous devez ouvrir votre port AJP sur votre serveur d'applications. Les attributs seront envoyés uniquement aux pages où AJP est activé. (Vous pouvez ajouter attributePrefix="AJP_"
à votre fichier de configuration.)
Vous devez ajouter suivante à votre serveur proxy (en considérant le port AJP est ouvert sur 8009)
ProxyPass/profil/* AJP: // localhost: 8009/profile/*
Même si cela est fait, les paramètres shibboleth ne s'affichent pas directement sous parameters.keySet()
. Mais si vous faites parameters.get(key)
alors il retournera une valeur envoyée par shib.
Le comportement ci-dessus peut varier pour différents serveurs; c'est-à-dire que vous devrez peut-être obtenir des valeurs par parameters.get("AJP_"+key)
. P.S. archiver à la fois l'en-tête et l'objet de requête.
Le port AJP est du côté sp autant que je peux voir, et dans le sp url/Shibboleth.sso/Session, je peux voir les attributs. Le réglage du port AJP aide-t-il à obtenir les attributs dans le JAVA du côté idp? – user2716189