gpt4 book ai didi

具有 SSL 客户端身份验证的 Java RMI : obtain client x509Certificate

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:52 26 4
gpt4 key购买 nike

是否可以在远程服务器实现中获取对已连接客户端的 x509Certificate 对象的引用?

重写的 RMISocketFactory:

RMISocketFactory.setSocketFactory(
new java.rmi.server.RMISocketFactory() {
...
@Override
public ServerSocket createServerSocket(int port)
throws IOException {
SSLServerSocket socket = ...
socket.setNeedClientAuth(true);
return socket;
}
});

远程对象:

public class RMIServer extends UnicastRemoteObject implements IRMIServer {

public RMIServer() throws RemoteException {
super(0);
}

@Override
public String foo() throws RemoteException {
System.out.println(getClientCertificate().getSubjectDN().getName()); // something like this?
}
}

最佳答案

您发现了 RMI 中的一个主要设计缺陷。 RMI 服务器实际上不可能获得客户端证书,反之亦然,因为实际上不可能知道当前调用正在使用哪个 SSLSocket。他们应该提供一种方法来附加诸如 HandshakeCompletionListener 之类的东西。

关于具有 SSL 客户端身份验证的 Java RMI : obtain client x509Certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com