0

JPA パーシスタンス レイヤーに Eclipse リンクを使用して Spring-Roo プロジェクトをセットアップし、セキュリティを管理するために (User Roles, Users ) テーブルを作成しました。ユーザー名とパスワードの検索にデータベーステーブルを使用し、ユーザー名とパスワードを保存するように、Spring プロジェクトでレルムを設定して Apache Shiro を構成した人がいるかどうか疑問に思っていましたか?

現在、いくつかのテスト ロールと (ユーザー名、パスワード) の組み合わせで使用されている Shiro.ini ファイルがありますが、代わりに正しいフィルターを使用して web.xml ファイルを構成する方法を見つけようとしています。以下は、私の web.xml ファイルと現在のフィルター セットです。

<filter>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
 <!-- all declarations in shiro.ini file -->
<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
</filter>


<filter-mapping>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Apache Shiro および Spring で (Postgres) を使用する JDBC レルムの例はありますか?

4

1 に答える 1

3

正しい web.xml 構成については、 Shiro の Spring ドキュメントを参照してください。あなたが示した web.xml の例とは異なります。

Spring の XML 構成は Shiro の INI よりもわずかに強力であるため、Spring ユーザーは Shiro INI の代わりに完全な Spring 構成を使用することをお勧めします。そのページの「Web アプリケーション」セクションを参照して、Shiro の Spring のみの構成の例を確認してください。

そのページのドキュメントの「applicationContext.xml」の部分に、

<bean id="myRealm" class="...">
...
</bean>

xml 構成の一部です。それを JdbcRealm Bean 定義に置き換えます。Spring 構成のデータソースを期待どおりに注入できます。

<bean id="myRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm">
    <property name="dataSource" ref="springConfiguredDataSource"/>
    ...
</bean>  

JdbcRealm のソース コードを見ると、実行されるデフォルトの SQL クエリを確認できます。

これらのクエリは、必要に応じて構成できます。

データ モデルが非常に複雑で JdbcRealm がニーズを十分に満たしていない場合、Shiro のAuthorizingRealmを拡張し、好みのデータソース API (JPA、Hibernate など) を使用してユーザー/ロール/パーミッションのルックアップを実行するのは簡単です。 )。

于 2011-12-04T19:06:56.723 に答える