001-011017

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

プロキシAPI経由でGaroonのAPIを複数回実行するとき、Garoonのセッション情報が再利用される場合がある。

種別
不具合
機能
  • JavaScript API
再現バージョン
  • 4.6.0
  • 4.6.1
  • 4.6.2
  • 4.6.3
  • 4.10.0
  • 4.10.1
  • 4.10.2
  • 4.10.3
  • 5.0.0
  • 5.0.1
  • 5.0.2
  • 5.5.0
  • 5.5.1
  • 5.9.0
  • 5.9.1
  • 5.9.2
  • 5.15.0
  • 5.15.1
  • 5.15.2
改修バージョン
6.0.0
公開日
2023-02-10
更新日
2023-10-27

詳細

【発生条件】
次の条件を満たすと発生する場合があります。
  • プロキシAPI経由でGaroonのAPIを複数回実行する。

【準備】
  • プロキシAPIの設定を追加します。

    例:
    ---------------
    ステータス:有効
    プロキシコード:test1
    メソッド:POST
    URL:
    アプリケーション画面のログインURL
    ---------------

    補足:
    • (システム管理画面)「API > プロキシAPIの設定」画面で追加します。

  • ユーザーを追加します。

    例:
    • ユーザー1(uid=2)
    • ユーザー2(uid=3)

【再現手順】
  1. アプリケーション画面にログインします。

    例:
    Windowsの場合:
    http://(インストールしたサーバーのIP アドレスまたはホスト名)/scripts/cbgrn/grn.exe

    Linuxの場合:
    http://(インストールしたサーバーのIP アドレスまたはホスト名)/cgi-bin/cbgrn/grn.cgi

  2. Webブラウザーの開発者ツールを利用し、プロキシAPI経由でGaroonのAPIを実行します。

    例:
    ---------------
    var data = '<?xml version="1.0" encoding="UTF-8"?>';
    data +='<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">&#39;;
    data +='<soap:Header>';
    data +='<Action>UtilGetLoginUserId</Action>';
    data +='<Security>';
    data +='<UsernameToken>';
    data +='<Username>(ユーザー1のログイン名)</Username>';
    data +='<Password>(ユーザー1のパスワード)</Password>';
    data +='</UsernameToken>';
    data +='</Security>';
    data +='<Timestamp>';
    data +='<Created>2019-12-31T15:00:00Z</Created>';
    data +='<Expires>2029-12-31T15:00:00Z</Expires>';
    data +='</Timestamp>';
    data +='<Locale>jp</Locale>';
    data +='</soap:Header>';
    data +='<soap:Body>';
    data +='<UtilGetLoginUserId>';
    data +='</UtilGetLoginUserId>';
    data +='</soap:Body>';
    data +='</soap:Envelope>';

    var url = '(アプリケーション画面のログインURL)/util_api/util/api';

    garoon.base.proxy.send(
    'test1',
    url,
    'POST',
    {},
    data,
    function(res){console.log(res)},
    function(err){console.log(err)},
    );
    ---------------

  3. 手順2のレスポンスの「user_id」を確認します。

    例:

     <user_id>2</user_id>

    補足:
    • ユーザー1の「user_id」が表示されています。

  4. 手順1で実行したAPIの「Username」と「Password」をユーザー2のものに変更して実行します。

  5. 手順4のレスポンスの「user_id」を確認します。

→現象発生:
 Garoonのセッション情報が再利用されることにより、ユーザー1の「user_id」が表示されます。

 例:
 <user_id>2</user_id>

→正しい結果:
 ユーザー2の「user_id」が表示されます。

 例:
 <user_id>3</user_id>

補足:
  • 記載している再現手順は、本不具合により発生する現象の一例です。

回避/対応方法

【回避方法】
次のバージョンの製品で本現象を改修しています。バージョンアップを検討してください。

  • バージョン 6.0.0のGaroon