問題タブ [undertow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3156 参照

spring-mvc - Spring Boot Undertow は、ブロッキング ハンドラーと NIO ハンドラーの両方を同じアプリケーションに追加します。

以前の質問(@Andy Wilkinson に感謝) で、への着信要求はすべてワーカーundertowEmbeddedServletContainerスレッド (ブロック操作) によって処理されることがわかりました。

Andy によると、着信リクエストをノンブロッキング ハンドラで処理するUndertowBuilderCustomizerために をオーバーライドするために、 を追加しようとしています。ServletInitializerHandler

このカスタマイザーrootHandlerでは、NIO ハンドラーのビルダーを設定します。ただしUndertowEmbeddedServletContainer、起動段階で次のようにオーバーライドされますServletInitializerHandler

この質問のタイトルが示すように、ブロッキング ハンドラーと非ブロッキング ハンドラーの両方を使用しようとしています。ブロッキング ハンドラーは@Controllerアノテーションによって管理され、NIO ハンドラーは Spring によって管理されます。

解決策を見つけましたが、初心者として、それが良いものかどうかわかりません。

HandlerPath アノテーション

HttpHandler を実装する Bean を作成する

シンプルなコントローラーを作成する

ServletExtension を実装するクラスを作成する

このメソッドでは、デフォルトハンドラーは "/" コンテキストにバインドされ、Spring によって管理されるため、すべてのブロッキング リクエストは(s)ServletInitializerによって処理できます。@Controller次に、 で注釈が付けられたすべての Bean を検出してから、based onプロパティに@HandlerPath新しい を追加しようとします。prefixPathrootHandler@HandlerPath.path

ついに

ディレクトリ META-INF.services を作成します

ファイル io.undertow.servlet.ServletExtension を作成し、次の行を追加します。

結果

すべてが魅力のように機能し、バインディング URL がヒットすると NIO ハンドラーが呼び出され、ブロッキング ハンドラーも呼び出されます。

このソリューションを何らかの方法で改善できるかどうか、誰かに教えてもらえますか? さらに、NIO ハンドラーの URL は Spring によって管理されていないため、NIO ハンドラーを保護するために使用globaleMethodSecurityおよび設定する必要があると思いますか?@PreAuthorize

0 投票する
1 に答える
4095 参照

spring - Spring Boot/MVC リソースに認識されるコンテンツ/MIME タイプを設定するには?

Spring MVC の ResourceHandlerを使用すると、リソースを簡単に提供できます。

ただし、一部のファイル、つまり.icoファイルが正しく認識されず、適切なContent-Typeヘッダーが取得されません。これはによって処理されるようですResourceHttpRequestHandler

では、Spring Boot 1.2 で認識されるファイル拡張子 / MIME タイプを構成するにはどうすればよいですか? (Tomcat と Undertow の両方)

0 投票する
0 に答える
47 参照

undertow - 属性のテキスト表現

Undertown のドキュメントのPredicates, Attributes and Handlersを見ると、次のような方法でアクセスできる属性のテキスト表現があるようです。

こんにちは %u 要求メソッドは %m です (%u がリモート ユーザーで %m がメソッドであるドキュメントから抽出された例)。

私の意図は、それらを使用してリクエスト時間をログに記録したり、他のトレース/デバッグ方法をログに記録したりすることです。

それらをどのように使用できますか?補間された属性を持つ文字列をログに記録できる提供されたハンドラーはありますか?

0 投票する
1 に答える
2539 参照

https - Undertow で HTTP を HTTPS にリダイレクトする

Undertow で HTTP->HTTPS リダイレクトを構成するにはどうすればよいですか? Undertow のコードベースを調べたところ、関連していると思われるクラスがいくつかあります (RedirectHandler など)。また、Undertow のドキュメント ( Predicates Attributes and Handlers ) は、とりわけこの問題を正確にターゲットにしているようです。しかし、どこから始めればよいかわかりません。

基本的に、私が探しているのは、Apache の mod_rewrite 構成に対応するものです。

ありがとう!

0 投票する
2 に答える
1141 参照

undertow - 複数の Web サービス URL をアンダートウする

私は自分の住所にこのようなものを望んでいます。servlet1、servlet2、servlet3 を localhost:8080 にバインドする方法

ローカルホスト:8080/サーブレット

ローカルホスト:8080/servlet1

ローカルホスト:8080/servlet2

ローカルホスト:8080/servlet3

最後のurl(サーブレット)が追加された場合にのみ機能するこのコードがあります