java - Java 中的 .Net SecureString

标签 java wcf wsdl axis securestring

我正在尝试在客户站点使用第 3 方身份验证 Web 服务。 Web 服务是用 .Net 编写的,并接受 SecureString 作为密码类型。

AuthResult Login(string username, SecureString passkey)

我的应用程序是用 Java 编写的,Java 中没有我可以使用的 SecureString 兼容类型:( 当我生成 Axis 代理时,它会生成一个没有 SecureString 成员的 stub ,因此我无法制作对服务的身份验证调用。

public class SecureString  implements java.io.Serializable {
    public SecureString() {
        ...
    }
}

我正在尝试 http://sanguinecomputing.com/a-secure-string-implementation-for-long-term-storage-of-sensitive-data-in-java/但我不是很有希望

谁能帮我解决这个互操作性问题?我正在寻找一种将 secureString 类型的参数从 Java 应用程序代码发送到 .Net 服务的方法。

最佳答案

没错。 SecureString 不是可序列化类型。它永远不可能跨机器,因为 SecureString 依赖于 DPAPI,它本身依赖于本地机器属性来构建它的加密 key /vector 。

API 使用 SecureString 类型参数发布这一事实表明其设计存在重大缺陷。没有远程客户端可能会提交该参数。

关于java - Java 中的 .Net SecureString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22645382/

相关文章:

java - 如何更改 Eclipse 中的弹出窗口?

java - 当从特定类调用某个方法时执行 AOP

c# - 错误 : Cannot obtain Metadata from WCF service

delphi - 如何使用 Delphi XE2 覆盖 WSDL 中的服务名称?

ssl - apache Camel cxf https 不工作

java - 将 JAR 从编译更改为提供时出现 Servlet 错误

java - JDK 7 的快速调试/调试构建

java - 需要创建5个形状

c# - 动态装配解析/管理

WCF 事务 : WSAtomicTransactionOctober2004 vs. WSAtomicTransaction11