2016-01-30 104 views
2

我正在爲shibboleth idp製作一個插件(在JAVA中)。在插件中,如果用戶通過身份驗證,我需要獲取用戶的屬性。我使用Filter(pattern/profile/*)來處理請求,但是沒有任何用戶屬性存儲在請求的屬性或頭中,如果用戶通過身份驗證,如何在Java代碼中檢索用戶的屬性?shibboleth idp獲取用戶屬性

回答

0

您必須在您的應用程序服務器中打開您的AJP端口。屬性將僅發送到啓用AJP的頁面。 (您可能需要添加attributePrefix="AJP_"到你的conf文件。)

您需要添加以下到您的代理服務器(考慮AJP端口是8009開)

的ProxyPass /資料/ * AJP://本地主機: 8009/profile/*

即使這樣做,shibboleth參數將不會直接在parameters.keySet()下顯示。但如果你做parameters.get(key)那麼它會返回一些由shib發送的值。

上述行爲可能因不同服務器而異;即您可能需要按parameters.get("AJP_"+key)獲取值。附:檢查頭和請求對象。

+0

就我所見,AJP端口位於sp端,而在sp url/Shibboleth.sso/Session中,我可以看到屬性。 AJP端口設置是否有助於在idp端獲得JAVA中的屬性? – user2716189