クイックスタート
このクイックスタートガイドで5-10分でNetFUNNEL 4 Java Agentを始めましょう。
このガイドでできること
- URL-Triggered統合: トリガールールベースの自動待機列制御
統合方法の選択
統合方法の詳細については、統合方法概要を参照してください。
前提条件
- NetFUNNELコンソールへのアクセス
- Javaプロジェクト (Spring Boot 3.x以上)
- Java 1.7以上
ステップ1: Client IDとSecret Keyの取得
- NetFUNNELコンソールに移動
- 右上のプロフィールアイコンをクリック
統合資格情報(Integration Credentials) メニューを選択Client IDとSecret Keyをコピー
ステップ2: ライブラリのインストール
Gradle (Kotlin DSL)
build.gradle.ktsに次の依存関係を追加します:
implementation(files("libs/netfunnel-agent.jar"))
implementation("com.google.code.gson:gson:2.9.1")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
Gradle (Groovy DSL)
build.gradleに次の依存関係を追加します:
implementation files('libs/netfunnel-agent.jar')
implementation 'com.google.code.gson:gson:2.9.1'
// Java使用時
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
Maven
pom.xmlに次の依存関係を追加します:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>2.15.2</version>
</dependency>
netfunnel-agent.jarファイルをlibsフォルダに追加し、次の設定を追加します:
<dependency>
<groupId>com.stclab</groupId>
<artifactId>netfunnel-agent</artifactId>
<version>4.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/netfunnel-agent.jar</systemPath>
</dependency>
ステップ3: InterceptorまたはFilterの適用
プロジェクト構造に応じて、InterceptorとFilterのいずれか1つだけを選択して適用します。
Interceptor方式
1. Interceptorの作成
import com.stclab.Netfunnel;
import com.stclab.servlet.NetFunnelServletService;
import com.stclab.utils.NetFunnelInitialize;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class NetFunnelInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
NetFunnelInitialize config = NetFunnelInitialize.Companion.builder()
.clientId("{{CLIENT_ID}}") // ステップ1で取得したClient ID
.secretKey("{{SECRET_KEY}}") // ステップ1で取得したSecret Key
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);
return netfunnel.run();
}
}
2. Interceptorの登録
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
private final NetFunnelInterceptor netFunnelInterceptor;
@Autowired
public WebConfig(NetFunnelInterceptor netFunnelInterceptor) {
this.netFunnelInterceptor = netFunnelInterceptor;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(netFunnelInterceptor)
.addPathPatterns("/**");
}
}
Filter方式
1. Filterの作成
import com.stclab.Netfunnel;
import com.stclab.servlet.NetFunnelServletService;
import com.stclab.utils.NetFunnelInitialize;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class NetFunnelFilter implements 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}}") // ステップ1で取得したClient ID
.secretKey("{{SECRET_KEY}}") // ステップ1で取得したSecret Key
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);
if (!netfunnel.run()) {
return;
}
chain.doFilter(servletRequest, servletResponse);
}
}
2. Filterの登録
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<Filter> filterRegistrationBean() {
FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
registration.setFilter(new NetFunnelFilter());
registration.addUrlPatterns("/*");
registration.setOrder(1);
return registration;
}
}
ステップ4: トリガールールの設定
-
コンソールでセグメント作成:
- NetFUNNELコンソール →
Projects→Segment→Create Segmentに移動 - セグメント名を入力
- 進入状態を
Waitingに設定 - 進入許可数を
0に設定 (テスト用)
- NetFUNNELコンソール →
-
トリガールールの設定:
Trigger Rulesセクションでルールを追加- Validator:
URL - Component:
PathまたはURL - Match:
Equals、Contains、StartsWith、EndsWithなど - Value: 適用するURLパスを入力 (例:
/checkout、/login)
ステップ5: テスト
- トリガールールのテスト: コンソールのトリガールールテスト機能でURLがルールに適合するか確認
- 待機室の確認: ルールに適合するURLにアクセスした際に待機室が表示されるか確認
- 進入の確認: 進入許可数を増やして正常に進入できるか確認
ヘルプが必要ですか?
- トラブルシューティング: 一般的な問題と解決方法
- APIリファレンス: 完全な関数仕様
- コンソールのプロジェクト/セグメントキーが正確に一致しているか確認