使用Spring Security Rest插件时出现问题

时间:2014-09-13 19:54:40

标签: spring rest grails spring-security grails-plugin

我正在研究Grails Application。我使用Jaxr插件创建了RestApi。后来我添加了Spring Security Core Plugin来授权和验证我的资源。当我添加这个Spring Security Core Plugin时,我的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 PlugIn来实现rest API。

1 个答案:

答案 0 :(得分:0)

你能分享你的Config.groovy吗?您需要将链接添加到链图中以验证类似的内容:

grails.plugin.springsecurity.filterChain.chainMap = [
   '/v1/secure/api/**':'restTokenValidationFilter,restExceptionTranslationFilter,filterInvocationInterceptor',// Stateless chain
]

然后在头文件中发送生成的令牌,以便更改头参数名称看看下面的属性

grails.plugin.springsecurity.rest.token.validation.headerName = 'X-Auth-Token'