如何为Apache-CXF JAX-WS启用Spring Security

如何在Apache-CXF上为apache JAX-WS启用Spring Security? Web上的示例包括Jax-RS示例,但我不使用Jax-RS。 我不想使用cxf的安全性。 如何在我的代码中实现它?

两种可能的方式:

  1. 将BasicAuthenticationFilter或DigestAuthenticationFilter放在CXF Servlet前面。

  2. 使用带有CXF 的WS-Security UsernamePasswordToken并编写一个CallbackHandler,a)创建UsernamePasswordAuthenticationToken,b)调用authenticationManager.authenticate()和c)将身份validation存储在SecurityContextHolder中。

请注意,上述内容并未涵盖注销的概念,因为登录会话通常使用cookie实现,而上述操作是无状态方法。 如果您确实需要注销,那么您应该考虑使用OAuth,因为您可以通过使访问令牌无效来实现注销。