Spring security 在SpringSecurityOpenID中,如何获取用户详细信息?
在SpringSecurityOpenID中,如何获取用户详细信息?(电子邮件、名字……)Spring security 在SpringSecurityOpenID中,如何获取用户详细信息?,spring-security,openid,Spring Security,Openid,在SpringSecurityOpenID中,如何获取用户详细信息?(电子邮件、名字……) 除了!我想在java或jsp文件中获取这些,而不是xml文件。您需要的是属性交换。这是OpenID的一项功能,允许从提供商处交换用户注册数据(如姓名、电子邮件等)。注意:支持的属性交换值列表因提供程序而异 假设您已经配置了Spring安全性和OpenID,并且可以正常工作,那么启用属性交换是非常简单的 <!--in your spring config --> <openid-login
除了!我想在java或jsp文件中获取这些,而不是xml文件。您需要的是属性交换。这是OpenID的一项功能,允许从提供商处交换用户注册数据(如姓名、电子邮件等)。注意:支持的属性交换值列表因提供程序而异 假设您已经配置了Spring安全性和OpenID,并且可以正常工作,那么启用属性交换是非常简单的
<!--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>
我知道这一点。但若我使用,每当一个用户要求登录时,提供者总是要求用户访问信息。我只想第一次获得信息-用户登录我的网站。请更新您的问题以反映您的需求!你问过如何获取用户详细信息-现在你说你已经知道了。
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
}