2011-08-30 94 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