【问题标题】:Spring Security with OpenIDAuthenticationFilter problem带有 OpenIDAuthenticationFilter 问题的 Spring Security
【发布时间】:2011-11-13 22:50:28
【问题描述】:

我在使 OpenIDAuthenticationFilter 工作时遇到了一些困难,希望有人能帮助我。

我的 spring-security.xml

安全:http> 豆> 属性> 豆> 豆> 豆> 列表> 豆> 属性> 豆> 豆> 豆>

org.myapp.openid.service.CustomUserDetailsS​​ervice.java

公共类 CustomUserDetailsS​​ervice 实现 UserDetailsS​​ervice, AuthenticationUserDetailsS​​ervice { 私人最终地图注册用户=新哈希图(); 私有静态最终列表 DEFAULT_AUTHORITIES = AuthorityUtils.createAuthorityList("ROLE_USER"); public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException { UserDetails user = registeredUsers.get(id); 如果(用户 == 空){ 抛出新的 UsernameNotFoundException(id); } 返回用户; } /** * 实现 {@code AuthenticationUserDetailsS​​ervice} 允许对提交的完全访问 * {@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


    【解决方案1】:

    只需要属性:

    `<beans:bean class="org.springframework.security.openid.OpenIDAttribute">
                        <beans:constructor-arg index="0" value="email" />
                        <beans:constructor-arg index="1" value="http://schema.openid.net/contact/email" />
                        <beans:property name="required" value="true"/>
    </beans:bean>`
    

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 1970-01-01
      • 2016-11-02
      • 2018-03-24
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 2018-10-09
      相关资源
      最近更新 更多