zoukankan      html  css  js  c++  java
  • Springboot通过过滤器实现对请求头的修改

    package com.example.demo.filter;
    
    import org.springframework.util.StringUtils;
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import java.io.IOException;
    
    /**
    * @Description: 滤器实现对请求头的修改
    * @Author: wanghui
    */
    @WebFilter
    public class AuthHeaderSettingFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            Filter.super.init(filterConfig);
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletRequest req = (HttpServletRequest) servletRequest;
            HeaderMapRequestWrapper headerMapRequestWrapper = new HeaderMapRequestWrapper(req);
            String token = req.getHeader("token");
            if(!StringUtils.isEmpty(token)){
                headerMapRequestWrapper.addHeader("token",token);
            }
        }
    
        @Override
        public void destroy() {
            Filter.super.destroy();
        }
    }
    

      

    package com.example.demo.filter;
    
    import org.springframework.util.StringUtils;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
    * @Description: 重写getHeader
    * @Author: wanghui
    */
    public class HeaderMapRequestWrapper extends HttpServletRequestWrapper {
    
        private Map headerMap = new HashMap();
    
        public HeaderMapRequestWrapper(HttpServletRequest request) {
            super(request);
        }
    
        public void addHeader(String name,String value){
            headerMap.put(name,value);
        }
    
        @Override
        public String getHeader(String name){
            String headerValue = super.getHeader(name);
            String value = (String) this.headerMap.get(name);
            if(!StringUtils.isEmpty(value)){
                return value;
            }
            return headerValue;
        }
    
    }
    

      

  • 相关阅读:
    mysql中给查询结果添加序号
    Mysql如何取当日的数据
    nginx 出现413 Request Entity Too Large问题的解决方法
    Mac 安装Jupyter Notebook
    Python-用xlrd模块读取excel,数字都是浮点型,日期格式是数字的解决办法
    sql-exists、not exists的用法
    sql语句replace函数的使用
    Python-日期格式化
    Python-自动用0补取长度
    Flask-实现下载功能
  • 原文地址:https://www.cnblogs.com/wangdahui/p/15103166.html
Copyright © 2011-2022 走看看