0
在Spring Security OpenID中,我如何获得用户的详细信息?(电子邮件,名字,..)在Spring Security OpenID中,我如何获取用户详细信息?
除外!我想在java或jsp文件中获取这些文件,而不是xml文件。
在Spring Security OpenID中,我如何获得用户的详细信息?(电子邮件,名字,..)在Spring Security OpenID中,我如何获取用户详细信息?
除外!我想在java或jsp文件中获取这些文件,而不是xml文件。
你需要什么叫做属性交换。这是OpenID的一项功能,允许从提供商交换用户注册数据(例如姓名,电子邮件等)。注意:受支持的属性交换值列表不同于一个提供者。
假设你已经配置并运行OpenID的Spring Security,启用属性交换非常简单。
<!--in your spring config -->
<openid-login ....>
<!-- here is sample config for getting email -->
<attribute-exchange>
<openid-attribute
name="email"
type="http://schema.openid.net/contact/email"
required="true"
/>
</attribute-exchange>
</openid-login>
spring会将属性数据保存到OpenIDAuthenticationToken
。然后在你的* UserDetailsService
public UserDetails loadUserDetails(OpenIDAuthenticationToken token) {
...
List<OpenIDAttribute> attributes = token.getAttributes();
user.setEmail(getAttribute("email", attributes));
..
}
private String getAttribute(String attrName, List<OpenIDAttribute> attrs) {
//do work to parse for email attribute
}
我知道这一点。但是如果我使用,每当一个用户要求登录时,提供者总是要求用户访问信息。我只想第一次获取信息 - 用户登录我的网站。 – user2524179
请更新您的问题以反映您想要的内容!你问如何获取用户详细信息 - 现在你说你已经知道这一点。 – ikumen