メインコンテンツまでスキップ
バージョン: 4.6.1-saas

APIリファレンス

NetFUNNEL Java Agent関数と使用方法の完全なリファレンスです。


Netfunnelクラス

Java Agentのコアクラスです。InterceptorまたはFilterで使用してNetFUNNEL待機列制御を実行します。

コンストラクタ

Netfunnel(NetFunnelInitialize config, NetFunnelServletService service, Object logger, Object logLevel)

パラメータ:

パラメータ説明
configNetFunnelInitializeNetFUNNEL初期化設定オブジェクト
serviceNetFunnelServletServiceHTTPリクエスト/レスポンスを処理するサービスオブジェクト
loggerObjectロガーオブジェクト (オプション、null可能)
logLevelObjectログレベル (オプション、null可能)

例:

NetFunnelInitialize config = NetFunnelInitialize.Companion.builder()
.clientId("{{CLIENT_ID}}")
.secretKey("{{SECRET_KEY}}")
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);

runメソッド

目的: NetFUNNEL待機列制御を実行します。

関数シグネチャ:

boolean run()

戻り値: boolean

  • true: リクエストが正常に処理され、次のフィルタ/インターセプタに進むことができます
  • false: リクエストがブロックされたかリダイレクトされたため、次のフィルタ/インターセプタに進みません

動作:

  1. トリガールールマッチング: ユーザーがアクセスしたページのURLとトリガールールを比較
  2. ルール一致時: NetFUNNELサーバーに進入リクエスト
  3. 待機応答時: 自動的に待機室ページにリダイレクト (302)
  4. 進入成功時: キーを発行し、リクエストを継続

例:

// Interceptorで使用
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
NetFunnelInitialize config = NetFunnelInitialize.Companion.builder()
.clientId("{{CLIENT_ID}}")
.secretKey("{{SECRET_KEY}}")
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);
return netfunnel.run();
}

// Filterで使用
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
NetFunnelInitialize config = NetFunnelInitialize.Companion.builder()
.clientId("{{CLIENT_ID}}")
.secretKey("{{SECRET_KEY}}")
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);
if (!netfunnel.run()) {
return; // リダイレクトされたかブロックされた場合
}
chain.doFilter(servletRequest, servletResponse);
}

NetFunnelServletServiceクラス

HTTPリクエスト/レスポンスを処理するサービスクラスです。

コンストラクタ

NetFunnelServletService(HttpServletRequest request, HttpServletResponse response)

パラメータ:

パラメータ説明
requestHttpServletRequestHTTPリクエストオブジェクト
responseHttpServletResponseHTTPレスポンスオブジェクト

例:

NetFunnelServletService service = new NetFunnelServletService(request, response);

動作フロー

正常フロー

  1. ユーザーがページにアクセス
  2. Interceptor/Filterでnetfunnel.run()を呼び出し
  3. トリガールールマッチングを確認
  4. ルール一致時、NetFUNNELサーバーに進入リクエスト
  5. 進入許可時、キー発行およびリクエスト継続
  6. run()メソッドがtrueを返す

待機フロー

  1. ユーザーがページにアクセス
  2. Interceptor/Filterでnetfunnel.run()を呼び出し
  3. トリガールールマッチングを確認
  4. ルール一致時、NetFUNNELサーバーに進入リクエスト
  5. 待機応答を受信
  6. 自動的に待機室ページにリダイレクト (302)
  7. run()メソッドがfalseを返す

ブロックフロー

  1. ユーザーがページにアクセス
  2. Interceptor/Filterでnetfunnel.run()を呼び出し
  3. トリガールールマッチングを確認
  4. ルール一致時、NetFUNNELサーバーに進入リクエスト
  5. ブロック応答を受信
  6. ブロックページにリダイレクトまたはブロック処理
  7. run()メソッドがfalseを返す

ベストプラクティス

集中型構成

@Component
public class NetFunnelConfig {
private static final String CLIENT_ID = "{{CLIENT_ID}}";
private static final String SECRET_KEY = "{{SECRET_KEY}}";

public NetFunnelInitialize getConfig() {
return NetFunnelInitialize.Companion.builder()
.clientId(CLIENT_ID)
.secretKey(SECRET_KEY)
.build();
}
}

環境別設定

@Configuration
public class NetFunnelConfig {
@Value("${netfunnel.client-id}")
private String clientId;

@Value("${netfunnel.secret-key}")
private String secretKey;

public NetFunnelInitialize getConfig() {
return NetFunnelInitialize.Companion.builder()
.clientId(clientId)
.secretKey(secretKey)
.build();
}
}

関連ドキュメント