我使用Spring Security 3.0.5为我的网站提供openid支持。我在Spring-Security.xml中编写了以下代码
<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,我得到了我问的所有属性......
提前致谢,
答案 0 :(得分:3)
this SO question可能重复。任何OpenID提供商都不保证支持AX属性,并且从OpenID提供商到提供商肯定会有很大差异。通过这些特定示例,雅虎肯定会返回非常少的信息以响应AX请求,而Google的回报略高。 (当我大约一年前对我的书进行研究时,MyOpenID获得了主要OpenID提供商最完整的AX支持)。
如果您正在计划一些主要的实施计划,您应该查看一些关于OpenID的specs on attribute exchange和其他架构信息。
答案 1 :(得分:3)
这个问题很老,但希望能帮助别人。
我们必须使用电子邮件属性名称而不是axContactEmail或oiContactEmail
我的配置适用于Google和Yahoo! :
<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"/>