Flex Gateway新着情報
Governance新着情報
Monitoring API Manager要求を捕捉して停止するには、ラップされる関数の on_request から Response オブジェクトを返します。
Response::new(401)
.with_headers(vec![("WWW-Authenticate".to_string(), "Bearer realm=\"oauth2\"".to_string())])
.with_body(r#"{ "error": "token was not present"}"#)
フローを使用して、アップストリームサービスへの要求の到達をブロックまたは許可できます。フローは、次の 2 つの可能な値を持つ列挙型の値です。
Continue: 応答に転送されるオブジェクトを定義します。
Break: 要求を中止し、指定された応答を返します。
フローは次のように作成します。
async fn request_filter(request_state: RequestState) -> Flow<()> {
let header_state = request_state.into_headers_state().await;
let handler = header_state.handler();
if handler.header("authorization").is_some() {
Flow::Continue(())
} else {
Flow::Break(Response::new(401)
.with_headers(vec![("WWW-Authenticate".to_string(), "Bearer realm=\"oauth2\"".to_string())])
.with_body(r#"{ "error": "token was not present"}"#))
}
}
|
応答がクライアントに早期に返されないようにするには、要求と応答でのデータの共有を参照してください。 |