1

LoggedOut.jsp という名前の新しい JSP ファイルを作成しました。アプリでログアウトをクリックした後、そこに移動したいと考えています。LoggedOut.jsp ファイルに移動する代わりに、ログイン ページが表示されますが、URL は、loggedOut.jsp に移動するように表示されます。

Tomcat 7 と vaadin を使用しています。

アプリで LoggedOut.jsp に移動するにはどうすればよいですか?

私の web.xml ファイル:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Messages</display-name>
<context-param>
    <description>
    Vaadin production mode</description>
    <param-name>productionMode</p+aram-name>
    <param-value>false</param-value>
</context-param>
<servlet>
    <servlet-name>MessagesApplication</servlet-name>
    <servlet-class>org.vaadin.artur.icepush.ICEPushServlet</servlet-class>
    <init-param>
        <description>
        Vaadin application class to start</description>
        <param-name>application</param-name>
        <param-value>com.entropix.msgapp.main.MsgApplication</param-value>
    </init-param>
    <init-param>
        <description>
        Application widgetset</description>
        <param-name>widgetset</param-name>
        <param-value>com.entropix.msgapp.main.widgetset.MessagesWidgetset</param-value>
    </init-param>
</servlet>
<session-config>
    <session-timeout>30</session-timeout>
</session-config>
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/login.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/loginFailed.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/loggedOut.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>MessagesApplication</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
    <display-name>LoginConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>MessagesUser</web-resource-name>
        <description>Messages Application Authenticated User</description>
        <url-pattern>/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>messages-user</role-name>
    </auth-constraint>
    <user-data-constraint>
        <!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<security-role>
    <description>Messages User</description>
    <role-name>messages-user</role-name>
</security-role>
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/loginFailed.jsp</form-error-page>
        </form-login-config>
</login-config>

4

1 に答える 1

3

ユーザーが認証されていない場合、すべて (またはすべて) の「保護された」URL のログイン ページにリダイレクトするように Web アプリケーション (または Web アプリケーションのフィルタ) を構成した可能性があります。

アクセスするために認証が必要な「保護された」URL (または URL パターン) に、loggedOut.jsp が含まれていないことを確認してください。これは通常、web.xml ファイルで構成されますが、アプリがどのように機能するかを知っているのはあなただけです。

編集: これで web.xml ファイルが表示されました。その中を見てください。/*アクセスするロールに必要な url パターン (webapp のすべての URL を意味します) を使用してリソース コレクションを定義してmessages-userいます。これは、webapp のすべての URL にアクセスするには、認証されている必要があり、この認証を通じてメッセージ ユーザー ロールを取得している必要があることを意味します。したがって、ログアウトするとすぐに、ユーザーを logedOut.jsp にリダイレクトします。ただし、アクセスするには URL を認証する必要があるため、ログイン ページが表示されます。

ここにあなたのためのチュートリアルがあります: http://docs.oracle.com/javaee/5/tutorial/doc/bncas.html

于 2012-05-04T17:46:28.767 に答える