jboss EAP:使用elytron client-ssl-context创建REST客户端

i2byvkas  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(159)

我知道,如何建立一个ResteasyClient与自己的SSL上下文。

builder.sslContext(mySSLcontext);

字符串
它工作正常,例如从独立的客户端和/或arquillain测试。我以编程方式构建SSL上下文,加载信任库等。
我有一个使用web.xml提供Rest服务的Java +War(ProjekctA):

<login-config>
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>ICSCRest</realm-name>
  </login-config>


和jboss-web.xml

<jboss-web>
    <server-instance>default-server</server-instance>      
    <virtual-host>default-host</virtual-host>
    <security-domain>ICSDRest</security-domain>
  </jboss-web>


EAP(7.4.7)配置了Elytron,提供了安全域(ICSDRest)。工作正常。对Rest服务的访问现在由SSL层保护。我还将EAP配置为具有client-ssl-context(参见下面的LDAP)。

<client-ssl-contexts>
    <client-ssl-context name="ICLdapSslContext" trust-manager="ICTrustManager"/>
  </client-ssl-contexts>


第二个Rest +War(ProjectB)应该使用ProjectA的Rest服务,所以ProjectB是一个Rest客户端。
要在ProjectB中示例化ResteasyClient,我必须设置sslContext(我猜)。如果可能的话,我想从Elytron中选择一个client-ssl-context。有办法吗?
我为什么要选Elytron?
ProjectA也通过ldaps处理LDAP。所以ProjectA是LDAP服务器的客户端。

<dir-contexts>
    <dir-context name="ICLdap" url="<some url>" principal="<query>" ssl-context="ICLdapSslContext">
    <credential-reference clear-text="<some password>"/>
    </dir-context>
  </dir-contexts>


因此,我希望,我可以从EAP/Elytron获得类似的sslContext。

builder.sslContext(mySSLcontext)


或者在上下文中创建ReasteasyClient。
对EAP初学者有什么提示吗?先谢谢了。

g6baxovj

g6baxovj1#

有一个elytron Java安全提供程序,可用于通过SSLContext.getDefault()调用获取elytron SSLContext。
因此,在您的设置中,也许您可以创建一个elytron client configuration file wildfly-config.xml,您可以在其中指定具有“ICTrustManager”使用的相同信任管理器配置的ssl上下文。然后您可以给予提供程序此配置文件的路径。例如,在如下代码中:

Security.insertProviderAt(new WildFlyElytronClientDefaultSSLContextProvider(CONFIG_FILE_PATH), 1);

字符串
然后你可以为你的ResteasyClient配置它:

builder.sslContext(SSLContext.getDefault());

相关问题