MaliciousIpCtrl.java 6.05 KB
package com.ui.ctrl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.ui.common.IpRuleConcatEnum;
import com.ui.common.IpRuleItemEnum;
import com.ui.common.IpRuleOperationEnum;
import com.ui.model.domain.MalIpRule;
import com.ui.model.req.PageRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;

@Controller
@RequestMapping("maliciousIp")
public class MaliciousIpCtrl {

    @Autowired
    private HttpRestClient httpClient;

    @RequestMapping("/toMaliciousIps")
	public ModelAndView toMaliciousIps(Model model) {
		return new ModelAndView("malicious/maliciousIpList");
	}
    
    @RequestMapping("/toMaliciousIpsBL")
	public ModelAndView toMaliciousIpsBL(Model model) {
		return new ModelAndView("malicious/maliciousIpListBL");
	}
    
    @RequestMapping("/toMaliciousIpsCS")
	public ModelAndView toMaliciousIpsCS(Model model) {
		return new ModelAndView("malicious/maliciousIpListCS");
	}
    
    @RequestMapping("/showDetail")
	public ModelAndView showDetail(Model model, String ip, String count, String type, String timeType, String timestamp) {
    	ModelAndView mdv = new ModelAndView("malicious/maliciousIpDetail");
    	mdv.addObject("type", type);
        mdv.addObject("ip", ip);
        mdv.addObject("count", count);
        mdv.addObject("timeType", timeType);
        mdv.addObject("timestamp", timestamp);
		return mdv;
	}
    
    @SuppressWarnings("unchecked")
	@RequestMapping("/getIps")
    @ResponseBody
	public BaseResponse<List<Object>> getIps(Model model,String timeType) {
		BaseResponse<List<Object>> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_IP+"?timeType="+timeType, null,
				BaseResponse.class);
		return response;
	}
    
    @SuppressWarnings("unchecked")
	@RequestMapping("/getDetail")
    @ResponseBody
	public BaseResponse<List<Object>> getDetail(Model model, String ip, String count,String timeType, String timestamp) {
		BaseResponse<List<Object>> response = httpClient.defaultGet(HttpUriContants.GET_MALICIOUS_DETAIL + "?ip=" + ip + "&count=" + count + "&timeType=" + timeType + "&timestamp=" + timestamp,
				BaseResponse.class);
		return response;
	}
    
    @SuppressWarnings("unchecked")
	@RequestMapping("/uploadIp")
    @ResponseBody
	public BaseResponse<Object> uploadIp(UpLoadMaliciousIp ips) {
		BaseResponse<Object> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_UPLOADIP, ips,
				BaseResponse.class);
		return response;
	}
    
    @RequestMapping("/showIps")
	public ModelAndView showIps(Model model, String ip, String count) {
    	return new ModelAndView("malicious/maliciousIpLook");
	}
    
    @SuppressWarnings("unchecked")
	@RequestMapping("/lookIps")
    @ResponseBody
	public BaseResponse<List<Object>> lookIps(Model model) {
		BaseResponse<List<Object>> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_LOOKIP, null,
				BaseResponse.class);
		return response;
	}
    
    /**
     * 从黑名单中移除ip
     * @param ips
     * @return
     */
    @SuppressWarnings("unchecked")
	@RequestMapping("/removeIp")
    @ResponseBody
	public BaseResponse<Object> removeIp(UpLoadMaliciousIp ips) {
		BaseResponse<Object> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_REMOVEIP, ips,
				BaseResponse.class);
		return response;
	}
    
    /**
     * 比例
     * @param model
     * @return
     */
    @SuppressWarnings("unchecked")
	@RequestMapping("/getIpsBL")
    @ResponseBody
	public BaseResponse<List<Object>> getIpsBL(Model model,String timeType) {
		BaseResponse<List<Object>> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_IP_BL+"?timeType="+timeType, null,
				BaseResponse.class);
		return response;
	}
    
    /**
     * 次数
     * @param model
     * @return
     */
    @SuppressWarnings("unchecked")
	@RequestMapping("/getIpsCS")
    @ResponseBody
	public BaseResponse<List<Object>> getIpsCS(Model model,String timeType) {
		BaseResponse<List<Object>> response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_IP_CS+"?timeType="+timeType, null,
				BaseResponse.class);
		return response;
	}


	/**
	 * 恶意ip规则管理**/
	@RequestMapping("/toMaliciousIpRules")
	public ModelAndView toMaliciousIpRules(Model model) {
		List<Map<String,String>> itemList = IpRuleItemEnum.getAll();//规则项
		String items = JSON.toJSONString(itemList);
		List<String> opList = IpRuleOperationEnum.getAllOp();//规则比较符 列表
		String operations = JSON.toJSONString(opList);
		List<String> concatList = IpRuleConcatEnum.getAll();//规则连接符
		String concats = JSON.toJSONString(concatList);

		ModelAndView mv = new ModelAndView();
		mv.setViewName("malicious/maliciousIpRulesList");
		mv.addObject("items",items);
		mv.addObject("operations",operations);
		mv.addObject("concats",concats);
		return mv;
	}

	/***
	 * 查询 恶意ip规则列表*/
	@RequestMapping("/getIpRules")
	@ResponseBody
	public BaseResponse getIpRules(PageRequest req) {
		BaseResponse response = httpClient.defaultPost(HttpUriContants.GET_MALICIOUS_IP_RULES, req, BaseResponse.class);
		return response;
	}

	/***
	 * 新增 恶意ip规则*/
	@RequestMapping("/saveIpRules")
	@ResponseBody
	public BaseResponse saveIpRules(@RequestBody MalIpRule malIpRule) {
		BaseResponse response = httpClient.defaultPost(HttpUriContants.SAVE_MALICIOUS_IP_RULES, malIpRule, BaseResponse.class);
		return response;
	}

	/***
	 * 删除 恶意ip规则*/
	@RequestMapping("/deleteIpRule")
	@ResponseBody
	public BaseResponse deleteIpRule(int id ) {
		BaseResponse response = httpClient.defaultPost(HttpUriContants.DEL_MALICIOUS_IP_RULE + "?id="+id, null, BaseResponse.class);
		return response;
	}


}