有没有办法在运行被调用方法(服务器端)时安全地获取方法调用程序?
我知道可以通过服务器属性访问客户端字符串,但它不是太“弱”吗?有什么方法可以获得例如客户端证书所有者?
请给我一些提示,之后将 RTFD ;)
提前致谢
有没有办法在运行被调用方法(服务器端)时安全地获取方法调用程序?
我知道可以通过服务器属性访问客户端字符串,但它不是太“弱”吗?有什么方法可以获得例如客户端证书所有者?
请给我一些提示,之后将 RTFD ;)
提前致谢
这是 RMI/SSL 的主要问题之一。除了通过诸如埃里克森的建议之类的额外代码之外,没有办法获得对等证书。这实际上使其不安全,因为无法执行授权步骤:您获得隐私、完整性和身份验证,但没有授权。有关详细讨论,请参阅我的白皮书。
我还没有彻底考虑过这一点,但是我建议插入一个自定义项TrustManager
,在对调用者进行身份验证后,将客户端证书与调用者的线程相关联。这可以简单地使用ThreadLocal
, 或使用 JAAS 架构来完成。