Spring Cloud 서비스 게 이 트 웨 이 Zuul 의 실현

3434 단어 SpringCloudZuul
서비스 게 이 트 웨 이의 요소
안정성
안전성
성능
확장 성
Spring Cloud Zuul

 -   +   
 -           
 


Zuul 경로 설정

management:
  security:
    enabled: false //     
zuul: 
  routes:
    # myProduct:  //          
    #   path: /myProduct/**
    #   serviceId: product
    #   sensitiveHeader: //     
    #     
    product: /myProduct/**
  ignored-patterns: 
    - /**/product/listForOrder //       (-  set  )

         :localhost:port/application/routes
{
  /myProduct/**: "product",
  /config/**: "config",
  /product/**: "product",
}
  
Zuul 설정 의 동적 주입(시작 클래스 에 기록 할 수도 있 음)

@Compoent
public class ZuulConfig{
  @ConfigurationProperties("zuul")
  @RefreshScope
  public ZuulProperties zuulProperties(){
    return new ZuulProperties();
  }
}
전형 적 인 응용 장면
사전 필터

 -   
 -   
 -       
백업 필터

-   
-   
Filter 를 실현 하려 면 다음 과 같은 몇 가지 절차 가 필요 합 니 다.
1.ZuulFilter 클래스 를 계승 하여 Filter 의 특성 을 검증 하기 위해 Filter 3 개 를 만 듭 니 다.
사용자 이름 에 따라 필터 링

package com.chhliu.springcloud.zuul; 
 
import javax.servlet.http.HttpServletRequest; 
 
import com.netflix.zuul.ZuulFilter; 
import com.netflix.zuul.context.RequestContext; 
 
public class AccessUserNameFilter extends ZuulFilter { 
  @Override 
  public Object run() { 
    RequestContext ctx = RequestContext.getCurrentContext(); 
    HttpServletRequest request = ctx.getRequest(); 
 
    System.out.println(String.format("%s AccessUserNameFilter request to %s", request.getMethod(), request.getRequestURL().toString())); 
 
    String username = request.getParameter("username");//         
    if(null != username && username.equals("chhliu")) {//           ,   chhliu ,    
      ctx.setSendZuulResponse(true);//          
      ctx.setResponseStatusCode(200); 
      ctx.set("isSuccess", true);//   ,    Filter     Filter    
      return null; 
    }else{ 
      ctx.setSendZuulResponse(false);//      ,        
      ctx.setResponseStatusCode(401);//       
      ctx.setResponseBody("{\"result\":\"username is not correct!\"}");//        
      ctx.set("isSuccess", false); 
      return null; 
    } 
  } 
 
  @Override 
  public boolean shouldFilter() { 
    return true;//         ,   true,       
  } 
 
  @Override 
  public int filterOrder() { 
    return 0;//     0,    ,      
  } 
 
  @Override 
  public String filterType() { 
    return "pre";//       
  } 
} 
참고:https://www.jb51.net/article/133244.htm
 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기