シーン
(ダウンロードするコードを有する)ゲートウェイ統合アクセスインタフェースをルーティング使用SpringCloud-。
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102733039
上記ルーティングゲートウェイ統合アクセスインタフェースを使用して達成された後、次のルーティングゲートウェイ・サービス・フィルタリングを使用。
注意:
ブログ:
https://blog.csdn.net/badao_liumang_qizhi
の社会的関心番号
猿の横柄プログラム
買収関連のプログラミング電子書籍、チュートリアル、無料ダウンロードのためにプッシュ。
実現
Zuulは、以前に統合ネットワーク管理機能をルーティングするために使用されます。Zuul機能がサービスをフィルタリングしている啓示もあります。
のみZuulFilterクラスを継承し、その上に@Componentクラスに注釈を追加する必要があります。
プロジェクトパッケージパッケージの新しいカテゴリの下に新しいフィルターバッグ、LoginFilter
com.badao.hello.spring.cloud.zuul.filterパッケージ; インポートcom.netflix.zuul.ZuulFilter; インポートcom.netflix.zuul.context.RequestContext; インポートcom.netflix.zuul.exception.ZuulException; インポートorg.slf4j .Logger; インポートorg.slf4j.LoggerFactory; インポートorg.springframework.stereotype.Component; インポートするjavax.servlet.http.HttpServletRequest; インポートにjava.io.IOException; @Component パブリック クラスLoginFilter ZuulFilter {延び プライベート 静的 LoggerFactoryの最終ロガー=ロガー(LoginFilter .getLogger クラス); / * * *フィルタ型の構成、フィルタのライフサイクルの4種類がある * 1 PREは:ルーティング前 * 2ルーティングは:のルーティング * 3.ポスト:ルート * 4 Error:エラーがコール送信 * @return * / @Override パブリック文字列のfilterType(){ リターン " プレ" ; } / * * *順次配置フィルタ * @return * / @Override 公衆 INT filterOrder(){ 戻り 0 ; } / * * *設定は、濾過されるべきである:真/必要な、偽/必要はない * @return * / @Override パブリックブールshouldFilter(){ リターン trueに; } / * * *特定のサービス・コード・フィルタ * @return * @throws ZuulException * / @Override パブリックオブジェクトRUN()ZuulExceptionスロー{ // 取得HttpServletRequestオブジェクト RequestContextのコンテキスト= RequestContext.getCurrentContext(); HttpServletRequestのリクエスト = コンテキスト。 GetRequest(); logger.info(" {} {} >>> " 、request.getMethod()、request.getRequestURL()のtoString()); // token--要求パラメータトークン取得する 文字列トークン=要求を。 getParameter(" トークン"); IF(トークン==ヌル){ logger.warn(" トークンが空である" ); // SをfalseにZuul応答設定されている context.setSendZuulResponse(falseにする); //は、許可がない応答ステータスコード401を設定 context.setResponseStatusCode(401 ); 試み{ / / ページへの表示内容 context.getResponse()にgetWriter()(..書く" NO局" ); } キャッチ(IOExceptionをE){ } } 他{ logger.info(" OK " ); } 戻り ヌル。 } }
注意:
4つの方法は、以下の具体的な効果を書き換える必要。
特定の濾過方法では、許可がないわけではない、トークンパラメータは、要求があるか否かが判断されています。
filterType
フィルタ型の構成、フィルタのライフサイクルの4種類がある
。1.事前:ルート前
ルーティング2.ルーティング
3.ポスト:ルート
4 Error:エラー送信コールが
フィルタ順序
配置順次濾過し、フロントの値が小さいです。
shouldFilter
フィルタリングするように構成されて:偽、真/必要性/必要はありません。
オブジェクトの実行は()ZuulExceptionを投げます
特定のサービスコードフィルタ
これまでのところ、全体のサービスシステムの構造として、
ターン我々はユーレカサービス、サービスプロバイダ、サービスコンシューマ2、アプリケーションの起動クラスのzuulを開始します
その後に、あなたのブラウザをポイント:
http:// localhostを:8769 / API / / HIメッセージ= HelloZuul?
あなたはトークンリクエストパラメータで、この時間に行く場合は、ブラウザを開いて、もう一度入力してください:
http:// localhostを:8769 / API / / HIメッセージ= HelloZuul&トークン= badao?