Я использую Struts2.1.6 + Spring 2.5. В моем приложении четыре модуля.
- Модуль регистрации
- Административный модуль
- Цитировать модуль
- Модуль определения местоположения.
В модуле регистрации клиент может зарегистрироваться самостоятельно, и только после регистрации он должен иметь доступ к остальным трем модулям.
Я хочу реализовать что-то вроде того, если вызываемое действие принадлежит модулю регистрации, оно будет работать как обычно, но если вызываемое действие относится к остальным из этих трех модулей, сначала он должен проверить, вошел ли пользователь в систему, и время сеанса не истекло. если да, он должен работать как обычно, иначе он должен перенаправить на страницу входа в систему.
В ходе исследований я обнаружил, что для этой цели можно использовать перехватчики, но перед тем, как продолжить, я подумал, что лучше получить от экспертов отзывы об этом.
Пожалуйста, предложите, как это сделать, и, если возможно, добавьте несколько предложений кода.
Вот мой struts.xml файл (Struts.xml содержит четыре различных файла конфигурации, принадлежащих каждому модулю):
<struts>
<include file="struts-default.xml" />
<constant name="struts.i18n.reload" value="false" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.devMode" value="false" />
<constant name="struts.serve.static.browserCache" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.multipart.maxSize" value="10000000" />
<constant name="struts.multipart.saveDir" value="C:/Temporary_image_location" />
<include file="/com/action/mappingFiles/registration_config.xml" />
<include file="/com/action/mappingFiles/admin_config.xml" />
<include file="/com/action/mappingFiles/quote.xml" />
<include file="/com/action/mappingFiles/location_config.xml" />
</struts>
Пример registration_config.xml Файл:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="registration" extends="struts-default"
namespace="/my_company">
<action name="LoginView" class="registration" method="showLoginView">
<result>....</result>
<result name="input">...</result>
</action>
</package>
</struts>
Пример admin_config.xml Файл:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="admin" extends="struts-default"
namespace="/my_company">
<action name="viewAdmin" class="admin" method="showAdminView">
<result>....</result>
<result name="input">...</result>
</action>
</package>
</struts>
Такой же код есть в остальных двух конфигурационных файлах struts2 xml. Я использовал одно и то же пространство имен во всех четырех конфигурационных файлах с разными именами пакетов (как вы можете видеть)