2013-04-11 5 views
1

Я работаю над приложением, использующим Struts2 и Struts1. Теперь я хочу реализовать аутентификацию для разных действий. Я хотел бы использовать interceptor, чтобы проверить, к какому namespace принадлежит action. Я завернул все действия Struts1 с действием Struts2. Таким образом, все действия strut1 проходят через перехватчик.Struts2/Struts1 action calls

<action name="contactsList" class="com.opensymphony.xwork2.ActionSupport"> 
    <result name="success">contactsList.do</result> 
</action> 

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

Мой вопрос: существует ли разница между вызовами действий, исходящими от браузера, и вызовами действий, вызываемыми через конфигурацию Struts. Если это возможно, можно ли запретить действия Struts1 из браузера, но изнутри стойки разрешено?

+2

Отключить стойки1 и использовать диспетчер struts2? –

+0

Вы имеете в виду сервлет-картографирование? action * .do IonTichy

+0

Да и сам сервлет. Тогда пользователи смогут получать доступ к контенту через диспетчер struts2. –

ответ

0

Вы подумали в неправильном направлении. В Struts2 есть Struts1 plugin, который фактически обертывает действие Struts1. Таким образом, код будет выглядеть

<action name="contactsList" class="org.apache.struts2.s1.Struts1Action"> 
    <param name="className">com.mycompany.myapp.ContactsListAction</param> 
    <result>contactsList.jsp</result> 
</action> 

на ваш вопрос возвращаемого результата Struts2 что либо перенаправлять или отправку в сервлет, даже если ваши действия, ничего не делая. Вы можете делать что-либо с браузером, но Struts будет принимать запросы, пока вы не сопоставите их с URL-адресом, где он отвечает за запросы браузера.

+0

Документация гласит: «Плагин Struts 1 в настоящее время предназначен только для того, чтобы вы могли запускать действия Strust 1 внутри приложения Struts 2. Он НЕ позволяет вам продолжать использовать библиотеки тегов Struts 1 в ваших JSP. Ваши JSP должны быть преобразованы для использования библиотеки тегов Struts 2 ». Я не могу изменить действие struts1 или jsps. Я должен использовать их так, как они есть. – IonTichy

+0

Правильно, это путь к миграции. Вы либо делаете это, либо используете обе структуры вместе, но не так, как вы делали. –