Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring和Apache CXF实现Java Web服务的安全性_Java_Authentication_Spring Security_Cxf - Fatal编程技术网

使用Spring和Apache CXF实现Java Web服务的安全性

使用Spring和Apache CXF实现Java Web服务的安全性,java,authentication,spring-security,cxf,Java,Authentication,Spring Security,Cxf,我有一个应用程序在JavaSpring3上运行。我的应用程序使用RESTful服务和Spring安全性来实现安全性。它有一个用户表,并从中检查用户凭据。我在我的应用程序中实现了web服务功能(客户想要的web服务之一,而不是RESTful服务)。如果可能的话,我希望使用相同的身份验证机制,并希望查找该数据库,只允许一个用户(现在是管理员)与我的web服务服务器通信 我是否应该遵循与RESTful身份验证相同的方法,或者Spring上是否有Java Web服务的身份验证和安全机制(即,如何处理注销

我有一个应用程序在JavaSpring3上运行。我的应用程序使用RESTful服务和Spring安全性来实现安全性。它有一个用户表,并从中检查用户凭据。我在我的应用程序中实现了web服务功能(客户想要的web服务之一,而不是RESTful服务)。如果可能的话,我希望使用相同的身份验证机制,并希望查找该数据库,只允许一个用户(现在是管理员)与我的web服务服务器通信

我是否应该遵循与RESTful身份验证相同的方法,或者Spring上是否有Java Web服务的身份验证和安全机制(即,如何处理注销,如何为客户机-服务器Web服务通信启用注销机制)


PS:我使用Apache CXF。

您可以在发送给REST的HTTP头中放置一个安全令牌,REST将对其进行解码并验证它是否来自管理位置

两种可能的方法:

  • 在您的cxfservlet前面放置一个

  • 使用CXF并编写回调处理程序,该处理程序a)创建用户名PasswordAuthenticationToken,b)调用authenticationManager.authenticate(),c)将身份验证存储在SecurityContextHolder中

  • 请注意,上面的内容不包括注销的概念,因为登录会话通常是用cookie实现的,上面的方法是无状态的。如果您真的需要注销,那么您应该考虑使用OAutht,因为您可以通过禁用访问令牌来实现注销。