正在WSO2 Identity Server上调用用户管理服务

正在WSO2 Identity Server上调用用户管理服务,wso2,wso2is,Wso2,Wso2is,我正在看两个调用用户管理web服务的WSO2客户机示例。第一个是简单的客户端,第二个是web应用程序 第一个客户端设置系统SSL属性,然后实例化WSUserStoreManager对象 第二个是web应用程序,它根本不设置SSL属性,而是实例化RemoteUserStoreManagerServiceStub 有人能解释一下这些差异的原因吗?当有两个类似的服务可用时(常规服务和“远程”服务),调用什么服务?调用https端点时是否总是需要设置SSL属性?谢谢。如果您正在呼叫HTTPS端点,则需要

我正在看两个调用用户管理web服务的WSO2客户机示例。第一个是简单的客户端,第二个是web应用程序

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

第二个是web应用程序,它根本不设置SSL属性,而是实例化RemoteUserStoreManagerServiceStub


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

如果您正在呼叫HTTPS端点,则需要将SSL信任存储属性设置为信任服务器。但它在客户的控制之下,如果客户愿意,它可以信任它,如果不信任它,它可以忽略它。如果要忽略,则要覆盖java的默认TrustManager。
但是,通常java有一个名为“cacerts”的信任存储文件,其中包含所有受信任的CA证书。但是WSO2IS服务器的证书是自签名的,java不能信任它。因此,如果需要,可以将证书导入到“cacerts文件。我不知道为什么客户端和web应用程序中有两种不同的功能。但是,如果您正在调用HTTPS,则必须创建信任。请检查web应用程序源以了解更多信息。有时,它可能会忽略信任。由于web应用程序在应用程序服务器中运行,有时java SSL信任属性可能已设置为正确的文件。

非常感谢您的回答。这个应用就是这个,我在代码中没有找到任何对ssl的引用,所以从你的话来看,我猜它假设HTTPS端点证书必须在运行时受信任(可能是WSO2AS)。你能简要解释一下为什么会有正常和“远程”web服务被暴露吗?有什么区别吗?附言:你的回答很有道理。该应用程序在wso2as中工作,但在tomcat中不工作(无法登录)。是。。这是因为,WSO2AS具有与WSO2IS中相同的密钥存储库,并且WSO2AS默认将这些密钥存储库设置为java SSL属性。。您可能需要将此SSL配置添加到web应用程序中,以使其在tomcat(或其他服务器)中工作,或者您需要将wso2carbon自签名证书导入到java cacert中,该证书可以在jre/lib/security中找到