2009-10-12 55 views
0

我有以下的項目結構:@Secured服務的方法和彈簧WS

基礎項目(服務層,模型) web項目 web服務項目

其中兩個web項目和web服務項目依賴在基地項目上並使用它提供的服務。

我大量使用Spring框架,這意味着服務的是春豆由@Secured註釋和春季安全固定方法。我創建了一個選舉器,擴展了檢查客戶端權限的AbstractAclVoter。

Web項目使用Spring MVC的和Web服務項目春WS與@Endpoint註釋和XwsSecurityInterceptor

這裏是我的問題:

的權限檢查,如果有電話打進來,從一個web工程控制器或在基礎項目的JUnit測試,但是從Web服務項目的請求沒有檢查正確的權限 - 我的選民不叫!

  • 這個事情與XwsSecurityInterceptor
  • 我是否也需要Web服務項目中的DelegatingFilterProxy? (我有沒有 那裏的ContextLoaderListener因爲一切都是由 的MessageDispatcherServlet配置配置)
+0

我認爲一些代碼會有所幫助。 – sfussenegger 2009-10-12 14:52:16

回答

1

具有已填充授予權限的用戶身份驗證對象僅在Web上下文中不在Web服務項目中可用。當你打電話給你的Web服務應用程序時,你在那裏沒有相同的安全上下文。所以你的安全標籤不會在那裏工作。

+0

但這意味着我需要爲我的SOAP請求執行基本身份驗證,而不是在SOAP請求中使用XwsSecurityInterceptor和安全性頭文件? – 2009-10-20 09:13:58

+0

另請參閱我的問題在http://stackoverflow.com/questions/10294517/propagate-spring-security-from-webapp-to-soap-webservice/10295617#10295617 – 2012-04-24 11:49:37

0

Spring Security的集成在Web應用程序Servlet過濾器。所以我會假設DelegatingFilterProxy需要被添加到web.xml中,以便它可以處理去往那個應用程序的請求。