春の雲マイクロセキュリティサービス改革は戦闘を制限_6-4_

フレームグアバ制限の使用例

GatewayRateLimitFilter:
/ ** 
 *限流过滤器
 * / 
パブリック クラス GatewayRateLimitFilterが延びOncePerRequestFilterを{ 

    プライベート RateLimiter rateLimiter = RateLimiter.create(1 )。

    @Overrideは、
    保護された ボイド doFilterInternal(HttpServletRequestのリクエスト、HttpServletResponseの応答れるFilterChainフィルターチェーン)がスローServletExceptionがは、IOException { 
        System.err.println( "0レート制限を" )。

        もし(rateLimiter.tryAcquire()){ 
            filterChain.doFilter(リクエスト、レスポンス)。
        }  {
            response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value())。
            response.setContentType( "アプリケーション/ JSON" )。
            。response.getWriter()書き込み( "{\"エラー\ ":\"あまりにも多くの要求\ "}" )。
            。response.getWriter()フラッシュ(); 
            リターン; 
        } 
    } 
}
流量制限フィルタの前に、フィルタチェーンSpringSecurityの最初のフィルタをロードします
  

 

 コンプリート。

コード:https://github.com/lhy1234/springcloud-security/tree/chapt-6-5-ratelimit

 

第VI章の要約

 

 

  

おすすめ

転載: www.cnblogs.com/lihaoyang/p/12501407.html