ドキュメントで推奨されているように、メインビジネスロジックハンドラの直前にサーバーパイプラインにExecutionHandler
を追加しました。Apache Shiro統合とNetty ExecutionHandler/OrderedMemoryAwareThreadPoolExecutor
セキュリティのためApache Shiro http://shiro.apache.org/を使用しています。私がExecutionHandler
を追加するまでうまくいきました。
問題:
史郎の実行コンテキストは、あなたがSubject
オブジェクトを取得した現在のスレッドにバインドされています。したがって、Subject
がワーカースレッドで取得され、ビジネスロジックが別のExecutionHandler
管理スレッドで実行される場合、2つの実行コンテキストはShiroに関する限り接続されません。したがって、ExecutionHandler
スレッドのShiroは、Subject
が実際に認証されていることに気付かないでしょう。だから私は認証エラーを取得しています。
をRunnable
と関連付けてからExecutor.execute()
に渡すことで、セキュリティコンテキストが維持されるようにすることができます。参照:これに基づきhttp://shiro.apache.org/subject.html
を私はExecutionHandler
Runnable
で現在史郎Subject
を関連付ける方法を見つける必要があると思います。
私はまだExecutionHandler
とOrderedMemoryAwareThreadPoolExecutor
の実装を完全に理解しようとしています。
aRunnable
がに渡される直前に、基本的にsubject.associateWith(aRunnable)
に電話する必要があります。
誰もが城をミックスにどこで/どのようにフックできたかについての考えを持っていますか?
おかげで、 マット
あなたはshiroとNettyをどのように統合したのか興味深いですか?それがopensourceなら、リンクを共有できますか?たぶんgithubの要点としてそれを貼り付けます。 – Abe