Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
安全Java Web服务_Java_Web Services_Security - Fatal编程技术网

安全Java Web服务

安全Java Web服务,java,web-services,security,Java,Web Services,Security,我试图找出哪种框架/API最适合实现我的web服务(JavaEE)。在客户机和web容器之间来回传递的数据需要超级安全,因此我甚至考虑在数据被封装到SOAP(或安全等效于SOAP)消息之前对其进行加密,而不管框架为我提供什么安全服务 我看到了所谓的XWS安全性,但它似乎是为了保护遗留JAX-RPC服务。我希望该框架符合标准(WSS/OASIS等),既不反对也不反对(当前;与即将发布的Java7版本兼容,等等) 默认情况下JAX-WS和JAX-RS安全吗?如果没有,是否有一个兼容的“安全包装器”框

我试图找出哪种框架/API最适合实现我的web服务(JavaEE)。在客户机和web容器之间来回传递的数据需要超级安全,因此我甚至考虑在数据被封装到SOAP(或安全等效于SOAP)消息之前对其进行加密,而不管框架为我提供什么安全服务

我看到了所谓的XWS安全性,但它似乎是为了保护遗留JAX-RPC服务。我希望该框架符合标准(WSS/OASIS等),既不反对也不反对(当前;与即将发布的Java7版本兼容,等等)

默认情况下JAX-WS和JAX-RS安全吗?如果没有,是否有一个兼容的“安全包装器”框架可用于调整现有JAX-WSWeb服务以实现安全框架


非常感谢您的任何想法或建议

如果您只是想保护内容,那么请使用传输层安全性,例如HTTPS。这将自动加密WS-request/responses,并防止窃听和恶意修改


如果要执行任何身份验证/授权,您可能也希望让呼叫者签署请求。

您应该做两件事,首先使用SSL保护传输。如果同时控制客户端和服务器,则可以要求双向SSL,以确保只有受信任的客户端才能连接

其次,您可以实现WS-security协议。Web服务安全标准倾向于处理三件事:身份验证、数字签名和加密/解密(来自SpringWS文档):

认证。这是确定委托人是否是他们声称的人的过程。在此上下文中,“主体”通常指可以在应用程序中执行操作的用户、设备或其他系统

数字签名。消息的数字签名是基于文档和签名者私钥的信息。它是通过使用散列函数和私有签名函数(使用签名者的私钥加密)创建的

加密和解密。加密是将数据转换为没有适当密钥就无法读取的形式的过程。它主要用于将信息隐藏起来,不让任何人看到。解密是加密的反面;它是将加密数据转换回可读形式的过程

每个功能都有许多协议/标准,以及 有许多JavaOSS项目以合理、可用的方式实现各种安全协议/标准


特别是,我要看看Sun的XWSS和ApacheWSS4J。SpringWS实现了这两种API,它们还很好地描述了各种组件:

感谢您的回复。对于HTTPS,您建议使用哪些框架?此外,我以前从未处理过身份验证/授权/签名,我想至少调查一下主题。有什么建议吗?再次感谢!