1

いくつかの理由で、extjsで記述された2つのクライアントアプリケーションを持つSpringアプリケーションがあります。1つにはログインページのみが含まれ、もう1つにはアプリケーションロジックが含まれます。Springでは、コントローラーで使用している2つのjspページにそれらを含めます。

ログインとアプリケーションページへのリダイレクトは正常に機能します。しかし、ログアウトすると、ログアウトは正常に完了しますが、ログインページにリダイレクトされるのではなく、アプリケーションページに留まり続けます。

セキュリティ構成:

<security:logout logout-url="/main/logoutpage.html" delete-cookies="JSESSIONID" invalidate-session="true" logout-success-url="/test/logout.html"/>

コントローラ:

@RequestMapping(value="/test/logout.html",method=RequestMethod.GET)
public ModelAndView testLogout(@RequestParam(required=false)Integer error, HttpServletRequest request, HttpServletResponse response){
    return new ModelAndView("login");
}

「login」は、ログインアプリケーションを含むビューの名前です。ブラウザのデバッグでは、次の2つの通信を確認できます。

    Request URL:http://xx:8080/xx/xx/logoutpage.html?_dc=1358246248972
Request Method:GET
Status Code:302 Moved Temporarily
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:JSESSIONID=6E22E42CC6835C8A6DFF2535907DEF17
Host:xx:8080
Referer:http://xx:8080/xx/xx/Home.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
X-Requested-With:XMLHttpRequest
Query String Parametersview URL encoded
_dc:1358246248972
Response Headersview source
Content-Length:0
Date:Tue, 15 Jan 2013 10:37:33 GMT
Location:http://xx:8080/xx/xx/login.html
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/xx



Request URL:http://xx:8080/xx/xx/login.html
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:JSESSIONID=6E22E42CC6835C8A6DFF2535907DEF17
Host:xx:8080
Referer:http://xx:8080/xx/xx/Home.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
X-Requested-With:XMLHttpRequest
Response Headersview source
Content-Language:de-DE
Content-Length:417
Content-Type:text/html;charset=ISO-8859-1
Date:Tue, 15 Jan 2013 10:37:33 GMT
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=532EBEED737BD4172E290F0D10085ED5; Path=/xx/; HttpOnly

2番目の応答には、ログインページも含まれています。

    <html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    <script src="http://extjs.cachefly.net/ext-4.1.1-gpl/ext-all.js"></script>
    <link rel="stylesheet" href="http://extjs.cachefly.net/ext-4.1.1-gpl/resources/css/ext-all.css">
    <script type="text/javascript" src="/xx/main/app/app.js"></script>
</head>
<body></body>
</html>

ログインページが表示されない理由を誰かが知っていますか?

ありがとう

4

2 に答える 2

0

「一方にはログインページのみが含まれ、もう一方にはアプリケーションロジックが含まれる」とはどういう意味ですか?あなたは2つのアプリを持っていますか?2つの異なるWAR/JAR?

説明してください...

ところで-ログアウト後、ユーザーをアプリ内の保護されたリソースにリダイレクトすると、 Springはユーザーをログインページにリダイレクトします。自分でログインページに暗黙的にリダイレクトする必要はありません(またはリダイレクトすべきではありません)。

于 2013-01-15T12:19:17.727 に答える
0

ログアウト制御用のカスタムJavaScriptハンドラーの代わりに、通常のリンクを使用します。

<a href="/main/logoutpage.html">Logout</a>

ログアウトコントローラは、HTTPリダイレクトを使用してログインページを表示します。AJAXの場合、コールリダイレクトは希望どおりに機能しません。AJAX呼び出しのXmlHttpResponseを調べます。そこにログアウトページがあります。

于 2013-01-15T13:27:18.477 に答える