【发布时间】:2014-09-13 19:54:40
【问题描述】:
我正在研究 Grails 应用程序。我使用 Jaxr 插件创建了 RestApi。后来我添加了 Spring Security Core Plugin 来授权和验证我的资源。当我添加这个 Spring Security Core 插件时,我的 REST API 停止工作,我在那里也提到过: Exception While Using Rest API developed using JAX-RS Plugin with Spring Security Core Plugin
所以,我使用 Spring Security Rest Plugin 来获取我的 Rest API。我遵循了整个文档。我成功生成授权令牌。
这是我的 Config.groovy 文件部分,我在其中添加链图以进行验证:
grails.plugin.springsecurity.filterChain.chainMap = [
'/MediaSenseEvents/SessionEvents': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain
'/MediaSenseEvents/login': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain
'/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter' // Traditional chain
]
而且,我也添加了 API 调用的路径:
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
....
'/MediaSenseEvents/SessionEvents': ['permitAll'],
....
]
这里的“/MediaSenseEvents/SessionEvents”是我的 API 调用的路径。 而endpointUrl = '/MediaSenseEvents/login'
这是我的事件侦听器类,它侦听对其进行的 API 调用:
@Path('/MediaSenseEvents/SessionEvents')
class EventsListener {
@POST
//@Consumes("application/x-www-form-urlencoded")
@Consumes("application/json")
//@Secured(['permitAll'])
public String postRequest(String message, @Context HttpServletRequest request) throws IOException {
...........
}
现在,我无法理解如何使用此生成的令牌来保护我的 REST API 调用。我仍然无法进行 REST API 调用,我使用 JAXR 插件来实现 REST API。
【问题讨论】:
-
我认为您的静态规则未正确处理。您是否尝试过使用
@Secure注释?此外,我需要查看完整的调试输出以了解发生了什么。
标签: spring rest grails spring-security grails-plugin