/* * Copyright (C), 2018-2021 * Project: starter * FileName: RemoteFilter * Author: xxx * Date: 2021/3/30 22:09 */ package com.fr.plugin.ihca.request; import com.fanruan.api.i18n.I18nKit; import com.fanruan.api.log.LogKit; import com.fr.decision.fun.impl.AbstractGlobalRequestFilterProvider; import com.fr.intelli.record.Focus; import com.fr.intelli.record.Original; import com.fr.plugin.context.PluginContexts; import com.fr.record.analyzer.EnableMetrics; import com.fr.stable.fun.Authorize; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** *
* * * @author xxx * @since 1.0.0 */ @Authorize(callSignKey = RemoteFilter.PLUGIN_ID) @EnableMetrics public class RemoteFilter extends AbstractGlobalRequestFilterProvider { public static final String PLUGIN_ID = "com.fr.plugin.ihca.rpc"; /** * 过滤器名称 * * @return */ @Override public String filterName() { return "ihcaFilter"; } /** * 过滤规则 * * @return */ @Override @Focus(id = PLUGIN_ID, text = "Plugin-ihca", source = Original.PLUGIN) public String[] urlPatterns() { if (PluginContexts.currentContext() == null || !PluginContexts.currentContext().isAvailable()) { LogKit.error(I18nKit.getLocText("Plugin-ihca_Licence_Expired")); return new String[]{}; } return new String[]{"/decision/remote/design/channel"}; } /** * 过滤器初始化 * * @param filterConfig */ @Override public void init(FilterConfig filterConfig) { super.init(filterConfig); } /** * 过滤器处理 * * @param request * @param response * @param filterChain */ @Override public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) { try { request = new ModifyBodyRequestWrapper(request); filterChain.doFilter(request, response); } catch (Exception e) { LogKit.error(e.getMessage(), e); } } }