APIリファレンス
NetFUNNEL Java Agent関数と使用方法の完全なリファレンスです。
Netfunnelクラス
Java Agentのコアクラスです。InterceptorまたはFilterで使用してNetFUNNEL待機列制御を実行します。
コンストラクタ
Netfunnel(NetFunnelInitialize config, NetFunnelServletService service, Object logger, Object logLevel)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
config | NetFunnelInitialize | NetFUNNEL初期化設定オブジェクト |
service | NetFunnelServletService | HTTPリクエスト/レスポンスを処理するサービスオブジェクト |
logger | Object | ロガーオブジェクト (オプション、null可能) |
logLevel | Object | ログレベル (オプション、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: リクエストがブロックされたかリダイレクトされたため、次のフィルタ/インターセプタに進みません
動作:
- トリガールールマッチング: ユーザーがアクセスしたページのURLとトリガールールを比較
- ルール一致時: NetFUNNELサーバーに進入リクエスト
- 待機応答時: 自動的に待機室ページにリダイレクト (302)
- 進入成功時: キーを発行し、リクエストを継続
例:
// 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)
パラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
request | HttpServletRequest | HTTPリクエストオブジェクト |
response | HttpServletResponse | HTTPレスポンスオブジェクト |
例:
NetFunnelServletService service = new NetFunnelServletService(request, response);
動作フロー
正常フロー
- ユーザーがページにアクセス
- Interceptor/Filterで
netfunnel.run()を呼び出し - トリガールールマッチングを確認
- ルール一致時、NetFUNNELサーバーに進入リクエスト
- 進入許可時、キー発行およびリクエスト継続
run()メソッドがtrueを返す
待機フロー
- ユーザーがページにアクセス
- Interceptor/Filterで
netfunnel.run()を呼び出し - トリガールールマッチングを確認
- ルール一致時、NetFUNNELサーバーに進入リクエスト
- 待機応答を受信
- 自動的に待機室ページにリダイレクト (302)
run()メソッドがfalseを返す
ブロックフロー
- ユーザーがページにアクセス
- Interceptor/Filterで
netfunnel.run()を呼び出し - トリガールールマッチングを確認
- ルール一致時、NetFUNNELサーバーに進入リクエスト
- ブロック応答を受信
- ブロックページにリダイレクトまたはブロック処理
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();
}
}
関連ドキュメント
- インストールと初期化: Interceptor/Filter適用方法
- 初期化設定: すべての初期化パラメータ
- トラブルシューティング: 一般的な問題と解決方法