2009-10-12 85 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中,以便它可以处理去往那个应用程序的请求。