我们有一个 grails/groovy 应用程序,我们正在使用 spring security。在调用我们的登录 api 并获取身份验证 token 后,我们调用另一个 api - details,我们得到以下错误。我们从一个安卓应用程序调用这些 api。当我们测试 postman 的api时,我们不会遇到这个问题。
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG rest.RestAuthenticationFilter - Actual URI is /api/details; endpoint URL is /api/login
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG web.FilterChainProxy - /api/v1/details at position 4 of 8 in additional filter chain; firing Filter: 'SecurityContextHolderAwareRequestFilter'
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG web.FilterChainProxy - /api/v1/details at position 5 of 8 in additional filter chain; firing Filter: 'GrailsRememberMeAuthenticationFilter'
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG web.FilterChainProxy - /api/v1/details at position 6 of 8 in additional filter chain; firing Filter: 'RestTokenValidationFilter'
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG rest.RestTokenValidationFilter - Token found: 76ijdnfmjvvj8g56615dnj6kikj2rgnb
2014-10-14 10:49:23,650 [qtp1955156240-20] DEBUG rest.RestTokenValidationFilter - Trying to authenticate the token
2014-10-14 10:49:23,651 [qtp1955156240-20] DEBUG rest.RestAuthenticationProvider - Trying to validate token 76ijdnfmjvvj8g56615dnj6kikj2rgnb
2014-10-14 10:49:23,654 [qtp1955156240-20] DEBUG rest.RestTokenValidationFilter - Authentication failed: User not found
2014-10-14 10:49:23,654 [qtp1955156240-20] DEBUG rest.RestAuthenticationFailureHandler - Setting status code to 401
我们正在使用 Spring 安全休息插件。
最佳答案
spring security rest 插件使用用户名作为身份验证 token 的 key 。我们在登录后通过 api 调用修改了用户名。但不在 spring security rest 插件用于身份验证的域中。一旦我们注意更新 spring security 使用的身份验证域中的用户名,详细信息 api 调用就可以正常工作了。
关于android - grails spring安全认证 token 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396710/