我正在研究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。
答案 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'