5.6. Jakarta Enterprise Beans クライアントアドレスの設定
以下の例のように、SessionContext
インターフェイスを使用して Jakarta Enterprise Beans クライアントアドレスを確認できます。
public class HelloBean implements HelloBeanRemote { @Resource SessionContext ctx; private Long counter; public HelloBean() { } @PostConstruct public void init() { counter = 0L; } @Override @RolesAllowed("users") public String hello() { final String message = "method hello() invoked by user " + ctx.getCallerPrincipal().getName() + ", source addr = " + ctx.getContextData().get("jboss.source-address").toString(); System.out.println(message); return message; } }
スタンドアロンクライアント設定
wildfly-config.xml
ファイルに名前空間 urn:xnio:3.5
がある worker
要素内に outbound-bind-addresses
要素を設定できます。bind-address
サブ要素は、以下のように定義される属性 match
、bind-address
、bind-port
を取ります。
以下は、wildfly-config.xml
ファイルを使用したスタンドアロンクライアント設定の例です。
<configuration> <worker xmlns="urn:xnio:3.5"> <worker-name value="default"/> <outbound-bind-addresses> <bind-address bind-address=IP_ADDRESS_TO_BIND_TO bind-port=OPTIONAL_SOURCE_PORT_NUMBER match=CIDR_BLOCK /> </outbound-bind-addresses> </worker> </configuration>
Outbound-bind-address
には以下の属性が必要です。
-
match
は、10.0.0.0/8
、ff00::\8
、0.0.0.0/0
、::/0
などの Classless Inter-Domain Routing (CIDR) ブロックです。 -
bind-address
は、宛先アドレスがmatch
パラメーターで指定された CIDR ブロックと一致する場合にバインドする IP アドレスを指定します。CIDR ブロックと同じアドレスファミリーである必要があります。 bind-port
は任意のソースポート番号で、デフォルトは0
です。一致する式が存在しない場合は、アウトバウンドソケットが明示的にバインドされません。
コンテナーベースの設定
Jakarta Enterprise Beans クライアントアドレスのコンテナーベースの設定は、wildfly-config.xml
ファイルで定義されたスタンドアロンクライアント設定と似ています。
以下の例は、ejb3
サブシステムがデフォルトで使用する io
サブシステムのデフォルトの worker
要素で outbound-bind-address
を設定します。
/subsystem=io/worker=default/outbound-bind-address=SPECIFY_OUTBOUND_BIND_ADDRESS:add(bind-address=IP_ADDRESS_TO_BIND_TO, bind-port=OPTIONAL_SOURCE_PORT_NUMBER, match=CIDR_BLOCK)