legacy-knowledge-base
公開されました Jul. 2, 2025

支払いリンクによってリダイレクトされた後、セッションが断続的にログアウトする

written-by

Kanchan Bisht

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 支払いリンクによってリダイレクトされた後、セッションはログアウトします。
  • 再現手順 :
    1. ライフレイにログインします。
    2. Postmanで API を呼び出します。
    リクエストパラメータを添付 (SSL Commerz Request Parameters.txt)
    リクエストタイプ: x-www-form-urlencoded
    URL: https://sandbox.sslcommerz.com/gwprocess/v4/api. php
    3. テスト用の非公開ページへのリダイレクト URL (success_url、fail_url、cancel_url) を設定します。
    4. ブラウザーで応答から GatewayPageURL を開きます。
    5. ログインをクリックし、事前に入力された携帯電話番号でサインインします。 OTP: 111111
    6 を使用します。 CVV 111
    事前入力されたカードのいずれかを使用してください。 予想される動作: 成功ボタンをクリックすると、Liferay にリダイレクトされます。
    観察された動作: ユーザー セッションがログアウトされ、ユーザーはログイン ページにリダイレクトされます。

Environment

  • Liferay DXP 7.3 フィックスパック 1

解決策

  • 問題は、ブラウザが、支払いサイトから戻った後、 http://localhost:8080/group/guest/test へのリクエストで、保存された Cookie をポータルに送り返さないことであることが判明しました。

    • この理由は、現在の環境では、デフォルトの Cookie 動作の制限により、適切なクロスサイト使用が妨げられているためです。
      要約すると、'SameSite=none' 値を持つすべての Cookie は、ブラウザーによって 'フィルターで除外' されます。 (デフォルト値は「SameSite=Lax」です。)cookies_SameSite_attribute__1_.png

  • この問題を解決するには、次の手順を試してください。

    1) tomcat/conf/context.xml の <context> 要素に <CookieProcessor sameSiteCookies="none"/> を追加しました。
    2) SSL/TLS 構成のハウツーに基づいて HTTPS をセットアップします。 (これは、「SameSite=none」の Cookie が暗号化された要求でのみ送信されるためです。)
    次のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を格納するキーストア ファイルを作成します。
    $JAVA_HOME/bin/keytool -genkey -エイリアス tomcat -keyalg RSA

    $CATALINA_BASE/conf/server.xml の「SSL HTTP/1.1 コネクタ」エントリのコメントを外して変更します。

    <!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="8443" maxThreads="200"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="${user.home}/.keystore" keystorePass="changeit"
    clientAuth="false" sslProtocol="TLS"/>

    3) https://localhost: /group/guest/test.

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base