2011-08-30 48 views
2

我使用Spring Security 3.0.5爲我的網站提供openid支持。我在寫下面的代碼彈簧security.xml文件OpenId屬性交換不適用於雅虎?

<security:attribute-exchange> 
       <security:openid-attribute name="axContactEmail" type="http://axschema.org/contact/email" required="true"/> 
       <security:openid-attribute name="oiContactEmail" type="http://schema.openid.net/contact/email" required="true"/> 
       <security:openid-attribute name="axNamePersonFullname" type="http://axschema.org/namePerson" required="true"/> 
       <security:openid-attribute name="axNamePersonFriendlyName" type="http://axschema.org/namePerson/friendly" required="true"/> 
       <security:openid-attribute name="axNamePersonFirstName" type="http://axschema.org/namePerson/first" required="true"/> 
       <security:openid-attribute name="axNamePersonLastName" type="http://axschema.org/namePerson/last" required="true"/> 
      </security:attribute-exchange> 

比我使用OpenIDAuthenticationToken ......爲了調試目的,我已經印在控制檯的存取權限值的屬性...我打印參數...我得到下面的輸出,同時試圖爲Yahoo login ...

Email Address : null 
Full name : null null 
Prefered login : null.null 
Identifier here : https://me.yahoo.com/a/L73gX9Yjkt2SKmqcgkzrbF7gGjRP **(correct!!! I have checked it)** 

相同的代碼工作正常使用Gmail和我得到的所有我問的屬性...提前

感謝,

回答

3

可能有重複的this SO question。 AX屬性不保證被任何OpenID提供商支持,並且從OpenID提供商到提供商的確有很大不同。通過這些特定的例子,雅虎肯定會迴應很少的信息來回應AX的請求,而Google的回報稍微多一些。 (在我大約一年前爲我的書進行研究的時候,MyOpenID擁有對主要OpenID提供者最全面的AX支持)。

如果您正在計劃一些主要的實施計劃,您應該查看一下specs on attribute exchange和其他有關OpenID的架構信息。

+0

再次感謝@Peter .... – aProgrammer

3

這個問題很老,但希望能幫助別人。

我們必須使用電子郵件屬性名稱,而不是axContactEmail或oiContactEmail

我的配置可與谷歌和雅虎都:

<security:attribute-exchange> 
<security:openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true"/> 
<security:openid-attribute name="forename" type="http://schema.openid.net/namePerson/first" required="true"/> 
<security:openid-attribute name="surname" type="http://schema.openid.net/namePerson/last" required="true"/> 
<security:openid-attribute name="name" type="http://schema.openid.net/namePerson/friendly" required="true"/> 
<!--Yahoo--> 
<security:openid-attribute name="fullname" type="http://axschema.org/namePerson" required="true"/> 
<security:openid-attribute name="email" type="http://axschema.org/contact/email" required="true"/> 

Read more