API网关和springboot 的filter展示

1springboot中过滤器

先自定义filter继承javax.servlet.Filter

package com.wx.house.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.web.ResourceProperties.Chain;

public class LogFilter implements Filter {

    private Logger logger = LoggerFactory.getLogger(LogFilter.class);


    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub

    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {


        logger.info("request-coming..........");

        chain.doFilter(request, response);


    }


    public void destroy() {
        // TODO Auto-generated method stub

    }

}

,如下配置bean

package com.wx.house.filter;

import java.util.ArrayList;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FilterBeanConfig {

    @Bean
    public FilterRegistrationBean logFilter() {

        FilterRegistrationBean beanfilter = new FilterRegistrationBean();

        beanfilter.setFilter(new LogFilter());
        ArrayList urlList = new ArrayList();
        urlList.add("*");
        beanfilter.setUrlPatterns(urlList);



        return beanfilter;

    }

}

1 API网关及其意义

管理所有的api,形成一个入口

有天气数据api微服务,城市api微服务,他们各自都会提供一个各自的服务api。当第三方想要调用这些微服务时,他们是通过这些微服务的名称来调用,这样在管理上面有问题,他们没有一个统一的管理,没有一个统一的入口,api网关就是统一服务的入口,可以方便的实现对平台众多服务的管控,对访问的身份进行验证,防止数据的串改,业务,响应数据,流量,并发一系列的操作

API网关和springboot 的filter展示_第1张图片

API网关和springboot 的filter展示_第2张图片

2

可以将外部公共的api和内部的的微服务api区分开,避免内部信息泄露给外部,使得各项微服务在添加和变更时可以有一个明确的安全边界

你可能感兴趣的:(springboot)