我正在使用Grails应用程序。我使用Jaxr插件创建了RestApi。后来我添加了Spring Security Core Plugin来授权和验证我的资源。当我将这个Spring Security的核心插件我的REST API停止工作,我提到过有太多: Exception While Using Rest API developed using JAX-RS Plugin with Spring Security Core Plugin使用Spring Security Rest插件时遇到的问题
所以,我用Spring Security的休息插件来secire我的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 /登录”
这是我的事件监听器类来监听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来实现其他API。
我相信你的静态规则处理不正确。您是否用'@ Secure'注释尝试过?此外,我需要看到一个完整的调试输出,看看发生了什么。 – 2014-10-06 13:25:34