В настоящее время я изучаю Struts 2, и сейчас я создаю простое приложение, в котором непроверенные пользователи перенаправляются на форму входа.Перенаправление на другое действие в перехватчике в struts 2
У меня есть форма входа в систему и действие, которое принимает учетные данные пользователей, проверяет их и сохраняет объект пользователя в сеансе, однако теперь я пытаюсь предотвратить доступ к страницам до того, как логин произошел, и я пытаюсь сделать это с перехватчиком.
Моя проблема заключается в том, что я написал перехватчик, который проверяет, был ли сохранен пользовательский объект в сеансе, но если у него нет, я хочу перенаправить на страницу входа и не могу найти способ сделать это без обхода распорки и с использованием метода HttpServletResponse.sendRedirect
Конфигурация:
<package name="mypackage" extends="struts-default" namespace="/admin">
<interceptors>
<interceptor name="login" class="my.LoginInterceptor" />
</interceptors>
<default-interceptor-ref name="login"/>
<action name="login" class="my.LoginAction">
<result name="input">/admin/login.jsp</result>
<result name="success" type="redirect">/admin</result>
</action>
<action name="private" class="my.PrivateAction">
<result>/admin/private.jsp</result>
</action>
</package>
перехватчик код:
@Override
public String intercept(ActionInvocation inv) throws Exception {
Map<String, Object> session = inv.getInvocationContext().getSession();
Object user = session.get("user");
if(user == null) {
// redirect to the 'login' action here
}
else {
return inv.invoke();
}
}
Спасибо, и дополнительные спасибо за бонус руководства. Как я пойду на предотвращение перехватчика от входа в действие входа? – 3urdoch
На самом деле, я работал для себя, я просто поместил в действие входа. –
3urdoch
Да, это один из способов. – leonbloy