zoukankan      html  css  js  c++  java
  • springcloud 实战 网关zuul使用中遇到的相关问题

    springcloud 实战  网关zuul使用中遇到的相关问题


    1.网关zuul使用时,跨域问题
    在网关中配置pre过滤器:

    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.addHeader("access-control-Allow-Headers","*");
    response.addHeader("Access-Control-Allow-Methods","*");
    response.addHeader("Access-Control-Max-Age","3600");//预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
    response.addHeader("Access-Control-Expose-Headers","Set-Cookie,REDIRECT,CONTENTPATH");//允许访问的头信息
    response.addHeader("Access-Control-Allow-Credentials","true");//允许Cookie跨域,在做登录校验的时候有用
    

     

    2.网关zuul使用时,session没有传递到微服务,微服务和网关中的sessionId不一致

    1> 保证网关中的sessionId 和 后端微服务一致。

    zuul.sensitiveHeaders="*"
    

      

    2>session共享时,将用户第一次登陆校验放在网关处理,在网关中将用户新存入session,返回请求,
    第二次请求时前端会携带第一次的网关中的sessionID,经过网关,后端微服务。

    注意:如果用户session校验逻辑放在网关,而将user写入session的逻辑放在后端微服务,则第一次请求后,返回到web前端会存在两个sessionId, 一个是网关中生成的,一个是微服务中生成的,导致第二次请求会取出最后一个sessionId(微服务中生成的),
    而该sesssionId在网关中是无法取出用户信息的,仍然提示用户未登录,该场景,需要先通过一次其他请求(比如隐藏一个不校验的图片地址请求)消耗掉第一次请求的sessionId不一致的问题。
    建议直接将用户session的写入和校验都放到网关中进行处理。

    3.网关zuul使用时,请求超时

    ribbon.ReadTimeout=60000
    ribbon.ConnectTimeout=60000
    zuul.host.connect-timeout-millis=30000
    zuul.host.socket-timeout-millis=30000
    

      

  • 相关阅读:
    Brupsuite 中插件CO2的使用
    记事本默认编码改为UTF-8
    Crackme031
    Crackme030
    Crackme029
    Crackme028
    Crackme026
    Crackme025
    Crackme024
    Crackme022
  • 原文地址:https://www.cnblogs.com/brant/p/9864848.html
Copyright © 2011-2022 走看看