关闭

spring boot 项目代理配置

标签: springeclipsejava开发spring-bootshiro
111人阅读 评论(0) 收藏 举报
分类:

最近公司需要做一个项目,项目是前后端分离的,前端技术用的vue+element,后端用的是spring boot+shiro,为了开发的方便,项目分为了多个,后端主要提供接口,前段只放页面,在发布的过程中,由于需要跨域访问数据、获取数据,所以会出现跨域的问题。

在开发的时候,我们前端开发的时候是有设置vue 代理的(vue代理设置请看我另外的一篇博客),为了后期的方便,我们考虑到前端项目也设置代理,并且代理名字配置一样,这样的话,只要把编译后的vue文件,直接放到项目中,就可以访问,减少了很多的工作量,具体配置如下:

       

1.    在前端项目pom.xml中增加以下依赖:

<dependencies>中增加:

<dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-zuul</artifactId>

     </dependency>

<dependencyManagement><dependencies>中增加:

              <dependency>

               <groupId>org.springframework.cloud</groupId>

               <artifactId>spring-cloud-netflix</artifactId>

               <version>1.2.3.RELEASE</version>

               <type>pom</type>

               <scope>import</scope>

        </dependency>

2.    在项目配置文件中,增加代理配置:

#反响代理配置 

#这里的配置类似nginx的反响代理 

#当请求/api/**会直接交给listOfServers配置的服务器处理 

#当stripPrefix=true的时候 (http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/user/list) 

#当stripPrefix=false的时候(http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/api/user/list) 

 

zuul.routes.api.path=/api/**

zuul.routes.api.url=http://localhost:9901

#如果不加这行代码,每次请求都会生成一个新的session

zuul.routes.api.sensitiveHeaders= Authorization

ribbon.eureka.enabled=false

3.    增加过滤器

@Component

publicclass AssZuulFilter extends ZuulFilter{

 

private static Logger log =LoggerFactory.getLogger(AssZuulFilter.class);

@Override

public Object run() {

        // TODO Auto-generated method stub

        System.out.println("run");

        RequestContext ctx = RequestContext.getCurrentContext();

   HttpServletRequest request = ctx.getRequest();

 

   log.info(String.format("%s request to %s",request.getMethod(), request.getRequestURL().toString()));

 

        return null;

}

 

@Override

public boolean shouldFilter() {

        // TODO Auto-generated method stub

        System.out.println("shouldFilter");

        return true;

}

 

@Override

public int filterOrder() {

        // TODO Auto-generated method stub

        System.out.println("filterOrder");

        return 1;

}

 

@Override

public String filterType() {

        // TODO Auto-generated method stub

        System.out.println("filterType");

        return "pre";

}

 

}

4.    在启动文件Application中配置过滤器启动

@Bean

 publicAssZuulFilter assZuulFilter() {

     return new AssZuulFilter();

        }



请注意在配置代理的时候一定要增加   zuul.routes.api.sensitiveHeaders = Authorization  这一行代码,否则的话,每次请求都会生成一个新的session ,这个问题,一直以为是shiro 的问题,纠结了我好久。

1
0

猜你在找
【直播】机器学习&深度学习系统实战(唐宇迪)
【直播】Kaggle 神器:XGBoost 从基础到实战(冒教授)
【直播回放】深度学习基础与TensorFlow实践(王琛)
【直播】计算机视觉原理及实战(屈教授)
【直播】机器学习之凸优化(马博士)
【直播】机器学习之矩阵(黄博士)
【直播】机器学习之概率与统计推断(冒教授)
【直播】机器学习之数学基础
【直播】TensorFlow实战进阶(智亮)
【直播】深度学习30天系统实训(唐宇迪)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5197次
    • 积分:109
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条