2014-09-13 45 views
1

我正在使用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。

+0

我相信你的靜態規則處理不正確。您是否用'@ Secure'註釋嘗試過?此外,我需要看到一個完整的調試輸出,看看發生了什麼。 – 2014-10-06 13:25:34

回答

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' 
+0

我已經添加了我的Config.groovy文件和鏈式地圖參數。那裏的一切都好嗎? – 2014-09-15 10:52:04

+0

更新:在進行API調用時指定驗證頭名稱之前我得到錯誤:401-未授權 但是,現在當我指定驗證頭標名稱與生成的令牌時出現錯誤:403-Forbidden – 2014-09-15 11:12:44

相關問題