Отображение страницы не работает - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над проектом, и когда я захожу на свою страницу входа. Он показывает следующую страницу, но браузер остается в файле login.xhtml вместо test.xhtml.

Вот где я думаю, что проблема в applicationContext.xml:

    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    <property name="securityManager" ref="securityManager"/>
    <property name="loginUrl" value="/login.xhtml"/>
    <property name="successUrl" value="/test.xhtml"/>
    <property name="unauthorizedUrl" value="/unauthorized.xhtml"/>

    <property name="filterChainDefinitions">
        <value>
            /login.xhtml = anon
            /test.xhtml = authc
            /unauthorized.xhtml = anon
        </value>
    </property>

1 Ответ

0 голосов
/ 04 июля 2018

Вы не на самом деле , входя в систему в свое приложение, и сессионный cookie не регистрируется, поскольку вы используете два совершенно разных фильтра. Ваш путь входа в систему установлен на anon, отбрасывая все, что вы ему публикуете, но ваш путь к защищенному ресурсу использует фильтр authc, который требует, чтобы вызывающий абонент был авторизован или авторизован сейчас.

Подробнее об этой проблеме читайте в похожем вопросе, на который я ответил здесь .

Это правильный подход и исправляет вашу проблему:

<property name="filterChainDefinitions">
    <value>
        /login.xhtml = authc
        /test.xhtml = authc
        /unauthorized.xhtml = anon
    </value>
</property>

Обязательно добавьте фильтр logout, чтобы иметь возможность выхода из приложения. Также обратите внимание, что в вашей конфигурации отсутствует обобщенный путь фильтра /** для защиты всех ресурсов вашего сервера.

...