1

我正在尝试使用 Spring Security 的<remember-me/>authentification。我的安全上下文中的行如下所示:

 <security:remember-me key="89dqj219dn910lsAc12" user-service-ref="jpaUserDetailsService"/>

虽然我使用自己的UserDetailsService(测试和工作)实现,但我也尝试过使用默认的实现相同的问题,即:

  1. 登录时选中“记住我”复选框,会按预期生成 cookie:

    名称:SPRING_SECURITY_REMEMBER_ME_COOKIE;值:c2FzczoxMjg1NTIxOTI1NzY4OmIxODQ5YTE2ZDY1MDVmZDFhNWRlN2Y2NzFlMzc1MmI0;主机:本地主机;路径:/webapp;安全:否;有效期至:2010 年 9 月 26 日星期日 17:25:25 GMT)

  2. 浏览器重新启动

  3. 饼干还在

  4. 尝试访问任何安全页面以“拒绝访问”错误结束:

    org.springframework.security.access.AccessDeniedException:访问被拒绝

    作为字符串的身份验证对象:org.springframework.security.authentication.RememberMeAuthenticationToken@ffcaab94:主体:de.myapp.businessobjects.AppUser@35c12e:用户名:用户名;密码保护]; 启用:真;AccountNonExpired:真;凭据非过期:真;AccountNonLocked:真;个人信息:32768;; 凭证:[受保护];已认证:真实;详细信息:org.springframework.security.web.authentication.WebAuthenticationDetails@957e:RemoteIpAddress:127.0.0.1;会话ID:空;未授予任何权限

我很困惑,不知道出了什么问题或从哪里开始调试。请帮忙?

4

1 回答 1

1

看起来用户已成功通过身份验证,但由于某种原因,他没有权限(即角色)。因此,请确保您UserDetailsService返回的用户详细信息从UserDetails.getAuthorities().

于 2010-09-12T18:04:46.727 回答