2011-09-16 37 views
6

Spring MVCとApache Shiroで環境を設定しようとしています。私はshiro.apache.orgに記載されている記事に従っています。Spring MVCとShiro iniファイルを使用した設定

私は、SpringのDelegatingFilterProxyをweb.xmlのShiroフィルタとして使用しています。

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> 
     <property name="securityManager" ref="securityManager"/> 
     <property name="loginUrl" value="/login"/> 
     <property name="successUrl" value="/dashboard"/> 
     <property name="unauthorizedUrl" value="/unauthorized"/> 
     <property name="filterChainDefinitions"> 
      <value> 
       /** = authc, user, admin 
       /admin/** = authc, admin 
       /login = anon 
      </value> 
     </property> 
    </bean> 

質問は、どのように私はセキュリティ設定を定義するshiro.iniファイルを使用してくださいされています

現在のフィルタリングを使用して行われていますか?

答えて

8

shiro.iniを使用する必要はありません。あなたの設定の残りの部分はすべて、ShiroFilterFactoryBeanを使用しているので、Springで行うことができます。例えば

は、あなたのshiroFilterにセキュリティマネージャとEhcacheのベースのキャッシュマネージャを追加:レは通常、代わりに別の豆を定義し、言ったように

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> 
    <property name="realm" ref="myRealm"/> 
    <property name="sessionMode" value="native"/> 
    <property name="sessionManager" ref="sessionManager"/> 
    <property name="cacheManager" ref="cacheManager"/> 
</bean> 

<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> 
    <property name="cacheManager" ref="ehCacheManager"/> 
</bean> 

<bean id="ehCacheManager" 
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/> 

<bean id="sessionDAO" 
    class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO"/> 

<bean id="sessionManager" 
    class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> 
    <property name="sessionDAO" ref="sessionDAO"/> 
</bean> 

<bean id="myRealm" class="com.foo.MyRealm"/> 
+0

はい、エリックは正しいです。 INIはShiroのデフォルト設定フォーマットで、他の設定メカニズムが利用できない場合に使用します。 Springはすでに非常に強力な設定メカニズムを提供しているので、SpringアプリケーションはSpringを介してShiroを直接設定する必要があります。これは、一般的には、SpringのPropertyPlaceholderConfigurerやその他のSpring設定の利便性のようなものを使ってShiroの設定をより良くすることができるので、INIよりも強力です。 –

+0

Eric/Les、ありがとう。私はまだ城と対戦しているし、素晴らしいよ。私はまだサンプルアプリケーションとspring-shiro-jdbcRealmの統合について説明する適切なドキュメントを手に入れませんでした。助けてもらえますか? –

+0

@sourcedelica FacesAjaxAwareUserFilterを追加する必要があります。どうすればいいですか? [メイン] ユーザー= com.example.filter.FacesAjaxAwareUserFilter user.loginUrl = /login.xhtml [ユーザー] 管理者=パスワード [URLを] /login.xhtml =ユーザー /アプリ/ ** =ユーザー – Dileep

8

あなたがここにhttp://shiro.apache.org/reference.htmlをシロのマニュアルを確認することができ、それは、春には、すべてのものが含まれていますshiro.iniファイルを使用するのでなく、あなたのようIniRealm使用し、認証のためにこのファイルを使用することができます。

<bean id="myRealm" class="org.apache.shiro.realm.text.IniRealm"> 
    <property name="resourcePath" value="classpath:/shiro.ini" /> 
</bean> 

詳細はhere

を指し、
関連する問題