我正在使用Spring Security 3.0.5在我正在处理的网站上提供身份验证和授权...用于访问我定义的电子邮件属性如下...
<security:openid-attribute name="email" type="http://schema.openid.net/contact/email" required="true" count="2"/>
现在我想为所有三种属性类型All the three types提供支持。如何为多个属性提供支持。
谢谢,
答案 0 :(得分:1)
如果没有一些相对广泛的自定义,您在Spring Security 3.0.5中所描述的内容实际上是不可能的。你有几个我能想到的选择:
为每个可能的架构组合创建不同的openid-attribute
映射。例如:
<security:openid-attribute name="email" type="http://axschema.org/contact/email" required="true" count="2"/>
<security:openid-attribute name="email2" type="http://schema.openid.net/contact/email" required="true" count="2"/>
<security:openid-attribute name="email3" type="http://openid.net/schema/contact/email" required="true" count="2"/>
此选项的难点在于,当您尝试对这些属性执行某些操作时,需要查看3个不同的属性值。
在每个identifier-matcher
元素上使用支持openid-attribute
的Spring Security 3.1功能,以缩小OpenID提供程序对特定架构的使用范围。这样做的好处是您可能只使用一个属性名称,并期望identifier-matcher
功能选择正确的名称。缺点是您需要做一些功课,找出哪些OpenID提供程序支持哪些模式和属性。
不幸的是,在任何一种情况下都不是一个很好的解决方案 - 欢迎来到OpenID AX世界:)