なんでも屋さんのTIPSという名のブログ

VOMiBLOG

CMS Drupal

Drupal8をmod_auth_mellon配下に入れるとログイン出来なくなる件(解決した)

更新日:

表題の通りですけど、まともな記事ではなくただのメモです。

Drupalをサイトで公開されているSAMLモジュールではなくmellon配下でSSO対応したい、

というかしたんだけどなんかログインできなくなった…という現象が起きたんですけどなかなか解決出来ず。。

結果Drupal公式問題報告ページのこれに辿り着きました

https://www.drupal.org/project/drupal/issues/2842858

やったこと

※パッチの当て方分かる人は上記報告ページ#17のパッチをあてるだけ

■/drupal/core/modules/basic_auth/src/Authentication/Provider内のBasicAuth.phpの82行目を編集する

  /**
   * {@inheritdoc}
   */
  public function applies(Request $request) {
    $username = $request->headers->get('PHP_AUTH_USER');
    $password = $request->headers->get('PHP_AUTH_PW');
    return isset($username) && isset($password);
  }

上記の部分のreturnをコメントアウト(もしくは削除)して下記に

  /**
   * {@inheritdoc}
   */
  public function applies(Request $request) {
    $username = $request->headers->get('PHP_AUTH_USER');
    $password = $request->headers->get('PHP_AUTH_PW');
    // return isset($username) && isset($password);
    if (isset($username) && isset($password)) {
      return (bool) $this->entityManager->getStorage('user')->loadByProperties(['name' => $username, 'status' => 1]);
    }
    return FALSE;
   }
  }

上記変更後、無事にログインできるようになりました。

ログインできなくなったというよりもSession Openのログの直後にAccess deniedが出る感じだったので正確にはログインは出来たけど認証が競合して…?って感じだったかもしれない

basic_auth_globalを使用する方法もあるみたいですがこちらは試していません。最終的にはCoreのファイルを編集することになってしまったのでもう少しいい方法があればいいんですけどね…

普通はDrupalのSAMLモジュールを使うでしょうからこの問題に当たる人も殆ど居ないのでしょう

おおよそ半年ぶりの更新になってしまった。家に帰ると記憶喪失になるバグがあるから仕方ないですね。Drupalの日本語情報薄すぎて英検2級()毎日泣いてる

-CMS, Drupal
-,

Copyright© VOMiBLOG , 2020 All Rights Reserved.