Настройка Spring MVC и Shiro с использованием ini-файлов - PullRequest
6 голосов
/ 16 сентября 2011

Я пытаюсь настроить среду с помощью Spring MVC и Apache Shiro. Я слежу за статьями, упомянутыми в shiro.apache.org.

Я использую Springating DelegationFilterProxy в качестве фильтра Широ в web.xml.

Текущая фильтрация выполняется с помощью:

<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, определяющий параметры безопасности?

Ответы [ 2 ]

8 голосов
/ 22 сентября 2013

Вы можете проверить документацию shiro здесь 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>

подробнее см. здесь

8 голосов
/ 16 сентября 2011

Вам не нужно использовать shiro.ini. Все остальные ваши настройки могут (и должны, так как вы используете ShiroFilterFactoryBean) быть сделаны в Spring.

Например, добавление менеджера кэша на основе securityManager и ehCache в shiroFilter:

<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"/>
...