ApacheでQueryString(URLパラメータ)の値によってBASIC認証をかけたい!
Apacheで特定のQueryString(URLパラメータ)に応じてBASIC認証をかける必要が出てきたのでRewriteを用いて対応しました。*1
設定したいこと
- 「area=admin」がQueryStringに設定されている場合BASIC認証をかける。
- 「area=admin」がない場合はそのまま表示できる。
当初は、 SetEnvIf を用いていけるかな?と考えていたけど、SetEnvIf の REQUEST_URIにはQueryStringは含まれていない。
「むー、こまった。」と途方に暮れていたらQueryStringを扱うにはRewriteを使いなさいと書いてあったので早速検討した。
「なんでBASIC認証かけるのにRewriteなんだよ。。。」ってブツブツ言いながら以下の設定をApacheに追加したら思ったとおりの挙動となりました。
Apacheの設定
RewriteEngine On RewriteCond %{QUERY_STRING} area=admin RewriteRule (.*) $1 [E=admin_access:1] <Location /> Order allow,deny Allow from All Deny from env=admin_access AuthUserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName "Administorator's Area" AuthType Basic require valid-user Satisfy Any </Location>
やっぱり、ちょっと違和感あるな。。。(^_^) ほかに方法ないのかな~
参考にさせていただいたサイト
まとめサイト: SetEnvIf の Request_URI には Query String は含まれない wall-climb » 特定URLのみBASIC認証を除外する
*1:2014年08月22日にQiitaに投稿した記事です。
Redmineを4.0.5から4.1.0にアップデートした時の事
常に新しいRedmineを使いたいのでアップデートを率先してやっています。 業務で利用しているので、お昼休みの一時間だけでなんとかするミッションです🥺アップデートは、手順に従って実施するのみのはず。
いつも大変お世話になっている、こちらのサイトの通りにやっていきます。
4.0系から4.1系のアップデートなのでその部分のみ、svnコマンドを変更しました。
# svn sw ^/branches/4.1-stable
ここまでは問題なかった。 でも、問題が起きるのはいつもここからだ。DB migrateを実行すると今回もやっぱりエラーになった😅
その対応を忘れないうちに書き留めています。
プラグインをたくさん入れているので、手順通り実施してもエラーになるのは慣れっこです🤐
NoMethodError: undefined method `assets'
まず、こちらのエラーがでました😅
# bundle exec rake db:migrate RAILS_ENV=production rake aborted! NoMethodError: undefined method `assets' for #<Rails::Application::Configuration:0x000055a03c7ecb88> Did you mean? asset_host
調べたところ、対応策があった。これが正しいのかどうか判断できなかったが、やってみたら上手くいった。
Sprockets::Railtie::ManifestNeededError
もう一度 DB migrateを実施したところ今度は違うエラーになった😅
# bundle exec rake db:migrate RAILS_ENV=production rake aborted! Sprockets::Railtie::ManifestNeededError: Expected to find a manifest file in `app/assets/config/manifest.js` But did not, please create this file and use it to link any assets that need to be rendered by your app: Example: //= link_tree ../images //= link_directory ../javascripts .js //= link_directory ../stylesheets .css and restart your server
これは、指示通りファイルを作れば良いように見える。同じような対応をしている方もいた。 Exampleの通りファイルを作ったら問題なくなった。
Redmine 4.1 は新機能がいっぱい
Redmine 4.1は新しい機能がたくさん実装されました。個人的には、「通知メールの件名にステータスを含めない」と言うのがありがたいです😊
GmailやOutlookを使っていると件名でスレッド化されますからね。 他にも便利な機能があるので、これから試していこうと思います。
動かないので外したプラグイン
お昼休みだけでは解決できなかったので今後継続対応を検討中。この機能は必須なんです、プロジェクトに癒やしを提供する大切な機能なのです😍
後日談
4.1対応済みのForkを教えていただきました!無事に動きました😍😍😍
下記フォークで4.1対応されている様です。https://t.co/y4IUvs0WAM
— y503Unavailable@Redmine Kindle本出版unofficialcooking (@y503Unavailable) 2020年1月18日
原因は下記修正?https://t.co/R695y9eGS3