API Reference
Complete reference for NetFUNNEL Java Agent functions and usage.
Netfunnel Class
The core class of the Java Agent. Used in Interceptor or Filter to perform NetFUNNEL queue control.
Constructor
Netfunnel(NetFunnelInitialize config, NetFunnelServletService service, Object logger, Object logLevel)
Parameters:
| Parameter | Type | Description |
|---|---|---|
config | NetFunnelInitialize | NetFUNNEL initialization configuration object |
service | NetFunnelServletService | Service object that handles HTTP request/response |
logger | Object | Logger object (optional, can be null) |
logLevel | Object | Log level (optional, can be null) |
Example:
NetFunnelInitialize config = NetFunnelInitialize.Companion.builder()
.clientId("{{CLIENT_ID}}")
.secretKey("{{SECRET_KEY}}")
.build();
Netfunnel netfunnel = new Netfunnel(config, new NetFunnelServletService(request, response), null, null);
run Method
Purpose: Executes NetFUNNEL queue control.
Function Signature:
boolean run()
Return Value: boolean
true: Request is processed normally and can proceed to the next filter/interceptorfalse: Request is blocked or redirected, so it should not proceed to the next filter/interceptor
Behavior:
- Trigger rule matching: Compare the URL of the page accessed by the user with trigger rules
- When rules match: Request entry to NetFUNNEL server
- When waiting response: Automatically redirect to waiting room page (302)
- When entry succeeds: Issue key and continue with the request
Example:
// Used in 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();
}
// Used in 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; // Redirected or blocked
}
chain.doFilter(servletRequest, servletResponse);
}
NetFunnelServletService Class
Service class that handles HTTP request/response.
Constructor
NetFunnelServletService(HttpServletRequest request, HttpServletResponse response)
Parameters:
| Parameter | Type | Description |
|---|---|---|
request | HttpServletRequest | HTTP request object |
response | HttpServletResponse | HTTP response object |
Example:
NetFunnelServletService service = new NetFunnelServletService(request, response);
Operation Flow
Normal Flow
- User accesses page
- Call
netfunnel.run()in Interceptor/Filter - Check trigger rule matching
- When rules match, request entry to NetFUNNEL server
- When entry is allowed, issue key and continue with request
run()method returnstrue
Waiting Flow
- User accesses page
- Call
netfunnel.run()in Interceptor/Filter - Check trigger rule matching
- When rules match, request entry to NetFUNNEL server
- Receive waiting response
- Automatically redirect to waiting room page (302)
run()method returnsfalse
Blocked Flow
- User accesses page
- Call
netfunnel.run()in Interceptor/Filter - Check trigger rule matching
- When rules match, request entry to NetFUNNEL server
- Receive blocked response
- Redirect to blocked page or handle blocking
run()method returnsfalse
Best Practices
Centralized Configuration
@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();
}
}
Environment-Specific Configuration
@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();
}
}
Related Documentation
- Installation and Initialization: How to apply Interceptor/Filter
- Initialization Settings: All initialization parameters
- Troubleshooting: Common issues and solutions