1

ApacheShiroに少し問題があります。JDBCレルムでShiroを使用しています。ユーザー、ロール、およびアクセス許可はSQLサーバーデータベースにストックされています。ユーザー、ロール、および権限を挿入、更新、または削除するためのバックオフィスとして使用されるJavaアプリケーションがあります。ただし、Urlsフィルターでも同じことを行う必要があります。

私はそれについていくつかのことを見つけましたが、私は本当にShiroの初心者であり、それらを理解していません。多くの場合、例はサーブレットとJSPです(HTML / CSS / JSのみを使用しており、データはウェブサービス)。

INIファイルではなく、データベースにURLをストックしてフィルタリングする方法を誰かが説明できますか?

4

1 に答える 1

1

Shiroは、 FilterChainManagerインターフェースのデフォルトの実装を使用して、フィルターを管理および作成します。このインターフェースのカスタム実装を作成して、構成情報をデータベースに委任することができます。アイデアについては、 DefaultFilterChainManagerの実装を参照してください。

実行時にこのようなものがどのように機能するかを次に示します。

  1. リクエストがサーブレットコンテナに着信すると、。によってインターセプトされますShiroFilter
  2. ShiroFilterはFilterChainResolverに委任して、FilterChain任意の要求に対して実行する必要があるを取得します。
  3. デフォルトFilterChainResolverPathMatchingFilterChainResolver実装は、次に要求パスを検査し、それを使用して。でルックアップを実行しますFilterChainManager
  4. 解決されたFilterChainが返され、マスターによって実行されShiroFilterます。

に任意のプラグインをプラグインできFilterChainResolverますShiroFilter。デフォルトを使用FilterChainResolverしてカスタムインスタンスに委任するFilterChainManagerことも、必要に応じていずれか(または両方)のインターフェースを実装することもできます。

于 2013-01-23T18:51:37.730 に答える