【发布时间】:2014-02-18 23:57:46
【问题描述】:
我在 Bootstrap.groovy 中创建了我的用户和角色。
def user = new User(username:"name", password:"pass",email:"email@gmail.rr",enabled:true).save()
我已经直接在数据库中检查了每个用户名和密码。 出于测试目的,我什至删除了编码。 但是,当我尝试登录时得到了这个(我添加了一些额外的日志记录)
2014-01-27 22:49:04,480 [http-bio-8090-exec-3] 调试 filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:“{0}” 2014-01-27 22:49:04,480 [http-bio-8090-exec-4] DEBUG filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:'{0}' 2014-01-27 23:06:19,654 [http-bio-8090-exec-7] DEBUG filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:'{0}' 2014-01-27 23:06:19,833 [http-bio-8090-exec-8] DEBUG filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:'{0}' 验证 grails.plugin.springsecurity.authentication.GrailsAnonymousAuthenticationToken@dc4a600:主体:org.springframework.security.core.userdetails.User@dc730200:用户名:grails.anonymous.user;密码保护];启用:假; AccountNonExpired:假;凭证非过期:假; AccountNonLocked:假;授予权限:ROLE_ANONYMOUS;凭证:[受保护];已认证:真实;详细信息:org.springframework.security.web.authentication.WebAuthenticationDetails@0:RemoteIpAddress:127.0.0.1;会话ID:951C58071D49B3E3AB6D55C158C46B43;授予权限:ROLE_ANONYMOUS 未登录 2014-01-27 23:06:29,147 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - 请求是处理身份验证 2014-01-27 23:06:30,115 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - 身份验证请求失败:org.springframework.security.authentication.BadCredentialsException:凭据错误 2014-01-27 23:06:30,115 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - 更新 SecurityContextHolder 以包含空身份验证 2014-01-27 23:06:30,115 [http-bio-8090-exec-9] DEBUG authentication.RequestHolderAuthenticationFilter - 委托给身份验证失败处理程序 grails.plugin.springsecurity.web.authentication.AjaxAwareAuthenticationFailureHandler@df9533 2014-01-27 23:06:30,116 [http-bio-8090-exec-9] DEBUG authentication.AjaxAwareAuthenticationFailureHandler - 重定向到 /login/authfail?login_error=1 2014-01-27 23:06:30,165 [http-bio-8090-exec-10] DEBUG filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:'{0}' 认证失败!!!! 2014-01-27 23:06:30,235 [http-bio-8090-exec-10] DEBUG filter.GrailsAnonymousAuthenticationFilter - 使用匿名令牌填充 SecurityContextHolder:'{0}' 验证 grails.plugin.springsecurity.authentication.GrailsAnonymousAuthenticationToken@dc4a600:主体:org.springframework.security.core.userdetails.User@dc730200:用户名:grails.anonymous.user;密码保护];启用:假; AccountNonExpired:假;凭证非过期:假; AccountNonLocked:假;授予权限:ROLE_ANONYMOUS;凭证:[受保护];已认证:真实;详细信息:org.springframework.security.web.authentication.WebAuthenticationDetails@0:RemoteIpAddress:127.0.0.1;会话ID:951C58071D49B3E3AB6D55C158C46B43;授予权限:ROLE_ANONYMOUS 未登录
请问您从这个堆栈跟踪中了解了什么?如果需要更多信息,我会毫不犹豫地提供:)
从我在日志中看到的内容来看,当我尝试使用已在数据库中创建并验证的管理员用户登录时,spring security 正在尝试使用无权访问这些页面的匿名用户登录 这是更多的spring安全配置
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
]
grails.plugin.springsecurity.interceptUrlMap = [
'/candidate/*': ['ROLE_ADMIN'],
]
【问题讨论】:
-
这一行:
Enabled: false; AccountNonExpired: false; credentialsNonExpired: false; AccountNonLocked: false您是否有可能尝试使用禁用的帐户进行测试? -
也许,我该怎么做才能验证?