RequestFilterController, 控制类 package OSI.AOP.MS.VPC.server; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.Socket; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @SuppressWarnings("unused") public class RequestFilter_C { static Map ipBlock; public static void main(String[] args){ } public static void requestIpFilter(Socket socket) { } //DNA 元基催化与肽计算,第四次修订版本 386 public static void requestLinkFilter(Socket socket) { } public static void requestIpFilter(VPCSRequest vPCSRequest, VPCSResponse vPCSResponse)throws IOException { //过滤 block if(ipBlock.containsKey(vPCSRequest.getRequestIp())){ vPCSResponse.returnErrorCode(403); } //同源 csrf if(vPCSRequest.getRequestIp().equalsIgnoreCase(InetAddress.getLocalHost().getHostAddress())){ //vPCSResponse.returnErrorCode(405); } } public static void requestLinkFilter(VPCSRequest vpcsRequest, VPCSResponsevPCSResponse) throws IOException { // //限制 ddos // String ipCount = DetaDBUtil.cacheRequest("get?key=" + vpcsRequest.getRequestIp() + "&email=" //+ "313 om" + "&password=" + "Fen 5!"); // // if(null == ipCount){ // DetaDBUtil.cacheRequest("put?key=" + vpcsRequest.getRequestIp() +"&value=" + "1" + "&time=" // + (2000+System.currentTimeMillis()) + "&email=" + "313699483@qq.com" +"&password=" + "Fengyue1985!"); // }else if(ipCount.contains("unsuccess")){ // DetaDBUtil.cacheRequest("put?key=" + vpcsRequest.getRequestIp() +"&value=" + "1" + "&time=" // + (2000+System.currentTimeMillis()) + "&email=" + "3136 q.com" + "&password="+"Feng 85!"); // }else if(Integer.valueOf(ipCount) <= 30){ // int digit = Integer.valueOf(ipCount) + 1; // DetaDBUtil.cacheRequest("put?key=" + vpcsRequest.getRequestIp() +"&value=" + digit + "&time=" // + 0 + "&email=" + "3136 om" + "&password=" + "Fe 5!"); // }else{ // vPCSResponse.returnErrorCode(400); // } } //先注释掉 之后测试 20210405 罗瑶光 //DB 在此处出错后能能 DMA 读写了. 罗瑶光 20210406 稍后进行 block list 函数设计优先级降低 public static void IV_BlockList() throws IOException { ipBlock = new ConcurrentHashMap<>(); // FileInputStream fileInputStream = new FileInputStream( //new File("src/main/resources/ipBlock.ips")); // InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8"); // BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // String line = null; // while ((line = bufferedReader.readLine()) != null) { DNA 元基催化与肽计算,第四次修订版本 387// ipBlock.put(line, true); // } // bufferedReader.close(); } }