2016-08-16 43 views
0

屬性我理解,配置屬性將被保存爲默認的環境變量,並會像Shibboleth的SP - 讀斷言從Java

request.getAttribute("Shib-Identity-Provider") 

訪問我想,和一些谷歌搜索後,我瞭解,訪問他們Java通過AJP。

我需要的前綴,它

<ApplicationDefaults id="default" policyId="default" 
    entityID="https://idp.example.org" 
    REMOTE_USER="eppn persistent-id targeted-id" 
    signing="false" encryption="false" attributePrefix="AJP_"> 

我這樣做,但我仍然不斷收到在我的Java應用程序

  • Shib身份提供商空 - 空
  • Shib-會話ID - null
  • Shib-Application-ID - null

有人能幫我弄清楚我錯過了什麼讓它工作嗎?

回答

0
  1. 確保在你的屬性映射文件,你有這樣的領域。

    1.1並且idP也必須發送屬性。

  2. 既然你有屬性前綴爲「AJP_」你的屬性將是未來的「AJP_attributeName」(這可以改變太)

    2.1你必須開拓通常偵聽8009的AJP端口和重定向/安全路徑到AJP。您必須在apache上執行此操作以將代理轉發爲AJP。

    2.2在你的servlet/handler的/ secure路徑嘗試獲取屬性爲request.getHeader("AJP_attrName")

    (可以試試下面的太多,如果這不工作。reqest.getAttribute("attr")reqest.getAttribute("AJP_attr")header.getAttribute("attr")header.getAttribute("AJP_attr")。我告訴你,試試這個,因爲我有這個很久以前的事做,我不知道確切的方法。)

+0

我想通了。謝謝雖然.. 即時通訊不打算使用頭來傳遞斷言屬性。 閱讀時,我並不需要以AJP_作爲前綴。我的所有其他配置都已到位。我錯過了Apache中的Location標記集。 感謝您的迴應和幫助。 –