Java @安全服务方法和SpringWS

Java @安全服务方法和SpringWS,java,spring,spring-mvc,spring-security,spring-ws,Java,Spring,Spring Mvc,Spring Security,Spring Ws,我有以下项目结构: 基础项目(服务层、模型) 网络项目 Web服务项目 其中web项目和web服务项目都依赖于基础项目并使用它提供的服务 我大量使用Spring框架,这意味着服务是Springbean,其方法由@secured注释和Spring Security保护。我创建了一个投票者扩展检查客户端权限的AbstractAclVoter web项目使用SpringMVC和web服务项目SpringWS以及@Endpoint注释和XwsSecurityInterceptor 我的问题是: 如果调用

我有以下项目结构:

基础项目(服务层、模型) 网络项目 Web服务项目

其中web项目和web服务项目都依赖于基础项目并使用它提供的服务

我大量使用Spring框架,这意味着服务是Springbean,其方法由@secured注释和Spring Security保护。我创建了一个投票者扩展检查客户端权限的AbstractAclVoter

web项目使用SpringMVC和web服务项目SpringWS以及@Endpoint注释和XwsSecurityInterceptor

我的问题是:

如果调用来自web项目控制器或基本项目的JUnit测试,但未检查来自web服务项目的请求是否具有正确的权限,则会检查权限-不会调用myVoter

  • 这与XwsSecurityInterceptor有关吗
  • 我是否也需要web服务项目中的DelegatingFilterProxy?(我有 没有ContextLoaderListener,因为所有内容都是由配置的 消息DispatcherServlet(配置)

Spring Security在web应用程序中集成为servlet过滤器。因此,我假设需要将DelegatingFilterProxy添加到web服务项目的web.xml中,以便它能够处理发送到该应用程序的请求。

您的用户身份验证对象(具有已授予的权限)仅在web上下文中可用,而不在web服务项目中可用。当您调用web服务应用程序时,您没有相同的安全上下文。因此,您的安全标记在那里不起作用。

我认为一些代码会有所帮助。但这意味着我需要对我的SOAP请求进行基本身份验证,而不是在SOAP请求中使用XwsSecurityInterceptor和安全头?另请参阅我的问题