【发布时间】:2011-11-13 22:50:28
【问题描述】:
我在使 OpenIDAuthenticationFilter 工作时遇到了一些困难,希望有人能帮助我。
我的 spring-security.xml
org.myapp.openid.service.CustomUserDetailsService.java
公共类 CustomUserDetailsService 实现 UserDetailsService, AuthenticationUserDetailsService { 私人最终地图注册用户=新哈希图(); 私有静态最终列表 DEFAULT_AUTHORITIES = AuthorityUtils.createAuthorityList("ROLE_USER"); public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException { UserDetails user = registeredUsers.get(id); 如果(用户 == 空){ 抛出新的 UsernameNotFoundException(id); } 返回用户; } /** * 实现 {@code AuthenticationUserDetailsService} 允许对提交的完全访问 * {@code 身份验证} 对象。由 OpenIDAuthenticationProvider 使用。 */ public UserDetails loadUserDetails(OpenIDAuthenticationToken token) { 字符串 id = token.getIdentityUrl(); CustomUserDetails user = registeredUsers.get(id); 如果(用户!= null){ 返回用户; } 字符串电子邮件=空; 字符串名字 = null; 字符串姓氏=空; 字符串全名 = 空; 列出属性 = token.getAttributes(); for(OpenIDAttribute 属性:属性){ if (attribute.getName().equals("email")) { 电子邮件 = 属性.getValues().get(0); } if (attribute.getName().equals("firstname")) { firstName = 属性.getValues().get(0); } if (attribute.getName().equals("lastname")) { 姓氏 = 属性.getValues().get(0); } if (attribute.getName().equals("fullname")) { 全名 = 属性.getValues().get(0); } } 如果(全名==空){ StringBuilder fullNameBldr = new StringBuilder(); 如果(名字!= null){ fullNameBldr.append(firstName); } 如果(姓氏!= null){ fullNameBldr.append(" ").append(lastName); } fullName = fullNameBldr.toString(); } …… } }当我在调试时,方法 loadUserByUsername(),有一个 Url 返回,但 OpenIDAttributes 为空(电子邮件、名字和姓氏)。
我想我一定是把 spring-security.xml 配置错了,请帮忙。谢谢
【问题讨论】:
标签: spring spring-mvc spring-security