2016-01-30 5 views
2

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

0

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.

+0

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