2

JoomlaWebサイトとJava/jspWebサイトがあります。jspアプリケーションから認証の詳細を取得するために、Joomlaのカスタム認証プラグインを作成しようとしています。

そのため、最初の試みとして、onUserAuthenticate()デフォルトのjoomla認証プラグインクラスで関数を編集しました。

function onUserAuthenticate($credentials, $options, &$response)
{
    $response->type = 'joomla';
    // Joomla does not like blank passwords
    if (empty($credentials['password'])) {
        $response->status = JAuthentication::STATUS_FAILURE;
        $response->error_message = JText::_('JGLOBAL_AUTH_EMPTY_PASS_NOT_ALLOWED');
        return false;
    }else{
        $response->status = JAuthentication::STATUS_SUCCESS;
        return true;
    }
}

私が推測したように、それはすべての資格情報に対して機能するはずですが、そうではありませんでした。
私はすでにユーザーを呼び出しadminており、ログインはユーザー名がadmin。しかし、これは私が期待したものではありません。anythingユーザー名とanythingパスワードでログインする必要があります。

最初の試みとして、クレデンシャルのためにデフォルトのjoomlaデータベースへのアクセスを完全に停止する必要がありました。ただし、認証スクリプトは引き続きローカルDBを探しています。この問題の解決にご協力ください。
また、jspサイトとの適切なコミュニケーション方法を提案していただければ幸いです。

次のように、SOAPを試してみます。

   $credentials = array(
      'memberNumber' => $credentials['username'],
      'password'     => $credentials['password']
      );
   $client = new SoapClient('http://example.com/soap.wsdl', $credentials);

これは私のjspアプリケーションからフィードバックを得る最良の方法ですか?

4

1 に答える 1

2

(編集後)データベースにアクセスしているのはjoomla認証プラグインではありません。/plugins/user/joomla/joomla.phpを調べると、onUserAuthenticate()の直後にトリガーされるメソッドonUserLogin()が見つかります。これは、ユーザーセッションを作成し、JUserオブジェクトインスタンスにデータを入力するものです。

成功したログインユーザーを強制した場合でも、ゲストとして扱われるため、onUserLogin()もクラックする必要があります。あなたのSOAPの試みは私には良さそうです

于 2012-08-07T17:02:20.373 に答える