zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    危险系数
    快速幂模板
    回文数字
    Echart图表使用
    http请求头中Referer的含义和作用
    有关程序员的时间管理
    数据库报错 java.sql.SQLException: The user specified as a definer ('root'@'%') does not exist
    sql中字符串替换
    前端获取数据库的datetime(时间戳) 转化成日期展示出来
    MySQL版本升级
  • 原文地址:https://www.cnblogs.com/yyKong/p/13941477.html
Copyright © 2011-2022 走看看