我正在使用玻璃.弹簧.安全.休息插件来保护我的rest。
我无法使用插件通过AJAX成功地调用rest。我正在接收一个302响应,它正在导致一个重定向循环。
$.ajax({
url: "http://localhost:8084/app/api/controller",
type: "GET",
beforeSend: function(xhr){xhr.setRequestHeader('Authorization', 'Bearer <TOKEN>');},
});我已经测试了未经认证,删除插件,一切都很好。
我能够用curl成功地调用rest:
curl -i -H "Accept: application/json" -H "Authorization:Bearer <TOKEN>" http://localhost:8084/app/api/controller我有以下配置:
BuildConfig.groovy
compile ':spring-security-core:2.0-RC3'
compile ":spring-security-rest:1.4.0.RC5", {
excludes: 'spring-security-core'
}Config.groovy
grails.plugin.springsecurity.rest.login.useJsonCredentials = true
grails.plugin.springsecurity.rest.token.storage.useGorm = true
grails.plugin.springsecurity.rest.token.storage.gorm.tokenDomainClassName = 'com.app.security.AuthenticationToken'
grails.plugin.springsecurity.filterChain.chainMap = [
'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain
'/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter' // Traditional chain
]我已经确保在头文件中发送了正确的身份验证令牌,下面是来自请求的片段:
Request URL:http://localhost:8084/app/api/controller/
Accept:application/json, text/plain, */*
Authorization:Bearer <TOKEN>寻找我是否做错了我的提交,或如果可能,这是一个错误的插件?
谢谢。
发布于 2014-10-12 14:48:50
你必须移除“记住我”过滤器。
像这样使用:'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter'
这个..。“‘bug”只有在您以前使用过带有常规spring安全性的应用程序时才会发生,因为那时您将有一个cookie,它将劫持整个筛选过程并尝试登录(并重定向您),从而在自定义的rest插件过滤器和原始的spring安全性之间进行重定向冲突。
https://stackoverflow.com/questions/24960477
复制相似问题