2013-11-26 82 views
0

我正在查看调用用户管理Web服务的两个WSO2客户端示例。第一个是简单的客户端,第二个是Web应用程序。在WSO2身份服务器上调用用户管理服务

第一个客户端设置系统SSL属性,然后实例化一个WSUserStoreManager对象。

第二个是web应用程序,根本没有设置SSL属性,而是实例化一个RemoteUserStoreManagerServiceStub。

有人能解释为什么这些差异?当两种类似的可用服务(常规和“远程”服务)时,需要拨打哪些服务?调用https端点时,是否总是需要设置SSL属性?谢谢。

回答

1

如果您要调用HTTPS端点,则需要将SSL信任存储区属性设置为信任服务器。但它受到客户的控制,如果客户想要,它可以信任它,如果不是它可以忽略。如果你想忽略,你想覆盖java的默认TrustManager。 但是,通常java有一个名为“cacerts”的信任存储文件,其中包含所有可信的CA证书。但WSO2IS服务器的证书是自签名的,而java不能信任它。因此,如果你愿意,你可以将证书导入到“cacerts文件中,我不确定为什么在客户端和web应用程序中有两种不同的方式,但是如果你调用HTTPS,就必须创建信任。有些时候,它可能会忽略信任,因为Web应用程序运行在应用程序服务器上,有时候可能已将java SSL信任属性设置为正确的文件。

+0

非常感谢您的回答。这一个https://github.com/soasecurity/soasecurity/tree/master/user-mgt/app/authentication,我没有在代码中找到任何对ssl的引用,所以从你的话我猜它假定HTTPS端点证书必须在运行时被信任(可能是WSO2AS) – user8658912

+0

您能否简单解释为什么有正常的和“远程”的Web服务暴露出来?是否有区别? – user8658912

+0

ps:你的回答是有道理的。但不在tomcat中(不能登录)。 – user8658912