001package com.esri.arcgis.enterprise.interceptor; 002 003import com.esri.arcgis.enterprise.interceptor.server.IServerInterceptorLogger; 004import com.esri.arcgis.enterprise.interceptor.server.IServerServicesInterceptor; 005import com.esri.arcgis.enterprise.interceptor.server.IServerServicesInterceptorHelper; 006 007import java.util.Map; 008 009/** 010 * Configuration of the Interceptor passed during the interceptor 011 * initialization {@link IServerServicesInterceptor#init(IInterceptorConfig, IServerServicesInterceptorHelper, IServerInterceptorLogger)} 012 */ 013public interface IInterceptorConfig { 014 015 /** 016 * Get name of the interceptor 017 */ 018 String getInterceptorName(); 019 020 /** 021 * Get display name of the interceptor 022 */ 023 String getDisplayName(); 024 025 /** 026 * Get description of the interceptor 027 */ 028 String getDescription(); 029 030 /** 031 * Get interceptor class 032 */ 033 String getInterceptorClass(); 034 035 /** 036 * Get URL pattern configuration of the interceptor. Requests matching the URL pattern will be intercepted by 037 * this interceptor 038 * 039 * @return Array of URL pattern 040 */ 041 String[] getUrlPatterns(); 042 043 /** 044 * Get custom properties of the interceptor. These properties can be changed through the Admin API and passed to 045 * the interceptor init method 046 * 047 * @return Map of custom interceptor properties 048 */ 049 Map<String, String> getProperties(); 050 051 /** 052 * Get chaining order of the interceptor. Chaining order controls the order of execution when there are more 053 * interceptors matching a given URL. This order can be updated using Admin API 054 * 055 * @return Configured chaining order of the interceptor 056 */ 057 int getChainingOrder(); 058}