- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Java 服务器,它接受使用 JSSE 的 SSL 连接,并在流中使用简单的 XML 消息格式。我希望服务器读取完整的消息然后发送回复。事实证明这非常困难,因为 org.xml.sax.XMLReader 想要读取整个流然后调用 close()。我知道这看起来很奇怪,但在带有 Sun JSSE 提供程序的 Java 6 中,这确实关闭了 SSLSocket 的两端,因此没有消息可以返回。我尝试在客户端使用 Socket 的 shutdownOutput() 方法,但 JSSE 不支持此方法。
我的解决方案是传递一个包装在自定义类中的 InputStream,该类静默忽略关闭请求并指示流在遇到第一个空行时关闭。这会将 XML 限制在通常有效的范围之外,但如果需要,客户端可以轻松过滤掉输入中的空行。有更好的解决方案吗?
最佳答案
您的客户如何知道完整的消息已被阅读?如果它必须读取直到输入流到达其末尾,那么根据定义,之后您将无法从流中读取任何内容。其次,在输入流上调用 close()
不应关闭套接字。您确定在输入流上调用 close()
时套接字已关闭吗?可能是对等方注意到其输出流(您的输入流)已关闭时(错误地)关闭了连接。
避免读取到输入流末尾的解决方案是以某种方式分隔输入消息。例如,您可以在消息之前发送消息的长度,然后将整个消息从流中读取到缓冲区中,然后使用 XMLReader 解析缓冲区,或者创建一个特殊的 InputStream,它在指定的数量之后到达其结尾数据。或者您可以在消息后的流中添加一个特殊的定界符,然后您将创建一个特殊的 InputStream,当底层流产生定界符时到达它的末尾。
关于java - 通过 JSSE 连接结束 XML 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263406/
我正在尝试做基于客户端服务器的 ssl, 这是我的服务器代码: public static void main(String arg[]){ try { KeyStore keyStore =
我找到了介绍 key 生成步骤的教程。它讲述了以下步骤: keytool -genkey -alias clientprivate -keystore client.private -storetyp
在 Java 中使用 JSSE 和 TLS。我在服务器和客户端之间创建了一个安全套接字。在最终让套接字安全连接之后,我仍然对我现有代码的安全性有一个基本问题。我按照教程中的说明进行操作,有时 Java
我正在用 Java 编写一个客户端(需要在桌面 JRE 和 Android 上工作),用于通过 TLS 承载的专有协议(protocol)(特定于我的公司)。我试图找出用 Java 编写 TLS 客户
JSSE 和 JCE 有什么区别。这两者都涉及广泛情况下的加密。我的问题可能没说清楚。由于 JCE 提供了加密功能,我们可以使用它来加密数据,那么为什么我们需要使用 JSSE 来实现也提供加密功能的安
在使用 Windows 上的自定义信任库将我基于 JSSE 的功能 HttpsURLConnection 实现带到 Android 上遇到各种问题后,我遇到了一些我无法得到答案的问题:(Android
我需要通过我的代理(我相信是隧道)建立一个使用 JSSE 建立的 SSL 连接。是否已经有任何库/属性/方法,或者我必须在低级别实现它? 请注意,只需为我的程序的一个子集定义此代理。我程序中的其他 H
我只是在 java 中收集一些关于 SSL/TSL 的信息,因为我们在使用 netty 时甚至不知道我们当前使用的是什么 TLS 协议(protocol)。我们的应用程序在 Java7 上运行,因此
对于大学安全实验室工作,我必须使用 RMI 创建一个简单的客户端/服务器应用程序。对于客户端和服务器之间的安全通信,我想使用 SSL。 Oracle has example所以我尝试使用它。我得到错误
为我的服务器应用程序使用 BouncyCaSTLe FIPS JSSE 和 TLS 提供程序。 org.bouncycastle bcpkix-fips
我正在使用 JSSE 并具有以下代码: private static void setupServerKeystore() throws GeneralSecurityException, IOExc
我有一个 Java 服务器,它接受使用 JSSE 的 SSL 连接,并在流中使用简单的 XML 消息格式。我希望服务器读取完整的消息然后发送回复。事实证明这非常困难,因为 org.xml.sax.XM
我正在编写一个将 SSLEngine 与 NIO 结合使用的应用程序,我同时编写了客户端和服务器。客户端能够连接到服务器,连接后我希望他能够执行 session 恢复/重新协商,但目前运气不好.. 由
我关注了Hardening your web servers ssl ciphers建议使用的指南 ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+A
我正在编写一个使用 SSLEngine 和 NIO 的应用程序,我编写了客户端和服务器。客户端能够连接到服务器,连接后我希望他能够执行 session 恢复/重新协商,但目前没有运气.. 由于使用 S
如果包含一个或多个 PrivateKeyEntry 的 keystore 被指定为信任库,JSSE 是否会根据每个条目中的最终实体证书创建一个信任 anchor ? 换句话说,如果我们有一个包含可信条
我想在 JSSE 中记录客户端发送的 tls 版本、服务器首选版本、服务器首选密码套件等内容。这个怎么做?请注意,我只能使用 Java 代码来执行此操作。不接受解析日志文件。 最佳答案 您可以将 -D
我们正在使用 Maven 2,并且有一个使用 SSL 客户端身份验证保护的 Maven 存储库管理器。为了让 Maven 访问存储库,必须将以下系统属性传递给 Java: javax.net.ssl.
我正在使用 c#-4.0 开发应用程序和 EntireX Broker 9.5.1 我正在尝试转换为 tpcip 连接以使用 ssl。我成功升级了我的 java由于 Java/Software AG
我正在尝试将 jsse.enableSNIExtension 属性设置为 false,但每次尝试时我都会获得 java 手册。 java -Djsse.enableSNIExtension=false
我是一名优秀的程序员,十分优秀!