Digest認証とリバースプロキシ

リバースプロキシで設定した先がDigest認証をしているとうまく動かないという問題に遭遇しました。Digest認証をWikipediaで調べてみると、下記のような手順でハッシュを生成しています。

A1 = ユーザ名 ":" realm ":" パスワード
A2 = HTTPのメソッド ":" コンテンツの<a class="mw-redirect" title="URI" href="https://ja.wikipedia.org/wiki/URI" data-mce-href="https://ja.wikipedia.org/wiki/URI">URI</a>
response = MD5( MD5(A1) ":" nonce ":" nc ":" cnonce ":" qop ":" MD5(A2) )

wikipediaより引用しました。ハッシュを生成する時にコンテンツのURIが含まれています。そのため元のURIとリバースプロキシした先のURIが変化しているとハッシュの不一致が発生してしまいます。

↓これは大丈夫
http://FRONT/aaa/bbb → http://BACKEND/aaa/bbb

↓これはダメ
http://FRONT/aaa/bbb → http://BACKEND/aaa/ccc

結局リバースプロキシで送り先がDigest認証がかかっている場合はURIに注意すれば問題なく使えるようです。

コンパイル時の環境変数

Linuxでソースをコンパイルする時パッケージ化されていないライブラリを個別にコンパイルする事が時々あるのですが、その際に使うLD_LIBRARY_PATHなどの変数のうちどの変数を使うべきか迷う事があります。その変数について軽く調べてみました

LD_LIBRARY_PATH

ライブラリの場所を示します。ただしこれは実行時に読み込まれます。コンパイル時はこの変数をどんなにいじっても影響はありません。コンパイル時のライブラリの位置は次のLIBRAY_PATHを指定します。

LIBRARY_PATH

コンパイル時にはこちらを指定します。

C_INCLUDE_PATH

Cのヘッダファイルの場所を指定します。

この他コンパイラによっては独自の環境変数がある場合があります。envコマンドなんかで一覧して見ていくとそれっぽいものが見つかる事があります。

人体展と上野公園の桜

 

上野の国立科学博物館の人体展に行ってきました。土曜日だったのでとても混雑していていましたが、特に待ち時間はなく中に入れました。どちらかというとチケット売り場が混雑していたようなのでインターネットで事前購入しておいて正解でした。中の半分くらいは撮影禁止でしたが、本物の人の臓器などの展示があり、ちょっと怖い感じもありました。ちなみに人の臓器のほとんどは血が抜けた状態なので割と肌色をしてました。

続きを読む

偕楽園行ってきました

天気も良かったので手軽に行ける場所という事で偕楽園に行ってきました。この時期は常磐線が偕楽園臨時駅に停車するのでとても便利です。ただし停車するのは終日ではなく9:17〜15:42までの列車です。朝は良いとして昼の最終をもうちょっと遅くしてくれるとありがたいなぁ…。

続きを読む