0
Spring Security OpenID에서 사용자 상세 정보를 얻으려면 어떻게합니까? (이메일, 이름, ..)Spring Security OpenID에서 어떻게 사용자 세부 정보를 얻을 수 있습니까?
! 나는 자바 파일이나 JSP 파일이 아니라 XML 파일을 가져오고 싶다.
Spring Security OpenID에서 사용자 상세 정보를 얻으려면 어떻게합니까? (이메일, 이름, ..)Spring Security OpenID에서 어떻게 사용자 세부 정보를 얻을 수 있습니까?
! 나는 자바 파일이나 JSP 파일이 아니라 XML 파일을 가져오고 싶다.
필요한 것은 Attribute Exchange입니다. 이것은 공급자로부터 사용자 등록 데이터 (예 : 이름, 전자 메일, ...)를 교환 할 수있는 OpenID의 기능입니다. 주 : 지원되는 속성 교환 치의리스트는, 프로 바이더마다 다릅니다.
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>
봄은 속성 데이터를 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