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;
        }
    
    }
    

      

  • 相关阅读:
    第3章 Python的数据结构、函数和文件
    字符与编码
    第2章 IPython和Jupyter
    第1章 准备工作
    (转)详解Python的装饰器
    (转)Python中的split()函数
    5.5 用户定义的可调用类型
    2.6 序列的增量赋值
    Zookeeper简析
    Dubbo-服务引入源码分析
  • 原文地址:https://www.cnblogs.com/wangdahui/p/15103166.html
Copyright © 2011-2022 走看看