• Java过滤ip,只允许配置的ip能够被访问


    Java过滤ip,只允许配置的ip能够被访问

    第一先创建过滤类 实现Filter就会有init(),doFilter(),destroy()三个方法

    private String ips;
    
        public String getIps() {
            return ips;
        }
    
        public void setIps(String ips) {
            this.ips = ips;
        }
    
        public ipConfigFilter(String ips) {
            this.ips = ips;
        }
    
        public ipConfigFilter() {
            this.ips = "";
        }
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            ips = filterConfig.getInitParameter("ips");
            String[] ipList = this.getIps().split(",");
            for (String ip : ipList) {
                logger.debug(ip);
            }
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            String[] ipList = this.getIps().split(",");
            String invokerIp = request.getRemoteAddr();
    
            logger.debug("remot:" + invokerIp);
            boolean falg = Arrays.asList(ipList).contains(invokerIp);
            if (!falg) {
                response.setContentType("application/json;charset=UTF-8");
                response.getWriter().print("{'code':'401','msg':'您无权限访问该地址'}");
            } else {
                chain.doFilter(request, response);
            }
    
        }
    
        @Override
        public void destroy() {
    
        }
    

      在web.xml里配置过滤信息

      param-value可以配多个用逗号隔开
      
     <filter>
            <filter-name>ipConfigFilter</filter-name>
            <filter-class>com.Filter.ipConfigFilter</filter-class>
            <async-supported>true</async-supported>
            <init-param>
                <param-name>ips</param-name>
                <param-value>10.1000.100.100,20.100.100.100</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>ipConfigFilter</filter-name>
            <url-pattern>/page/pc-back/*</url-pattern>
        </filter-mapping>
        <session-config>
            <session-timeout>30</session-timeout>
        </session-config>
    

      

  • 相关阅读:
    Error -26631: HTTP Status-Code=400 (Bad Request) for
    mysql中的制表符替换
    mysql中json数据的拼接方式
    使用Nightwatch.js做基于浏览器的web应用自动测试
    Selenium + Nightwatch 自动化测试环境搭建
    Python web 框架:web.py
    转 Python Selenium设计模式-POM
    自动化测试
    日志打印longging模块(控制台和文件同时输出)
    读取配置文件(configparser,.ini文件)
  • 原文地址:https://www.cnblogs.com/yyKong/p/13941477.html
Copyright © 2020-2023  润新知