@Secured服务方法和spring ws

时间:2009-10-12 14:08:39

标签: java spring spring-mvc spring-security spring-ws

我有以下项目结构:

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

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

我大量使用Spring Framework,这意味着服务是Spring Beans,其方法由 @Secured Annotation和 Spring Security 保护。我创建了一个选民,扩展了检查客户端权限的AbstractAclVoter。

Web项目使用 Spring MVC 和Web服务项目 Spring WS 和@Endpoint Annotations以及 XwsSecurityInterceptor

这是我的问题:

如果来自Web项目控制器的调用或基本项目的JUnit测试中检查了权限,但未检查来自Web服务项目的请求是否有正确的权限 - 我的选民不是叫!

  • 这与 XwsSecurityInterceptor
  • 有关
  • 我是否还需要Web服务项目中的 DelegatingFilterProxy ? (我有 没有ContextLoaderListener,因为一切都是由配置的 MessageDispatcherServlet config)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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