Movable Type 備忘録

 共有SSL を使って Movable Type にログインする2

  • Oct312007
  • Vote:
    http://bizcaz.com/archives/2007/10/31-213035.php
  • Categories: Customize
  • Tags: ,
  • Social Bookmark

- 2008.01.19 追記 -
こちらの記事の変更を行わなくってもよくなりました。
詳しくは共有SSL を使って Movable Type にログインするで追記しておりますので参照してください。

こんにちわ^^

先日、こちらの共有SSL を使って Movable Type にログインするで、Movable Type のログインの際 SSL を利用する方法をご紹介しました。
でも、mt-config.cgi 内に記述する StaticWebPath を Movable Type のインストールディレクトリからの相対パスにしなければならず、結果的には <$MTStaticWebPath$> も相対パスとなってしまい、テンプレート内で <$MTStaticWebPath$> を使用してるイメージが表示されなくなってしまうという影響がでてしまいました。

やむを得ず Movable Type の中をカスタマイズすることで目的を達成したので、その方法をご紹介します。

そもそも、わたしがやりたかったことは、

  • SSL(暗号化) による Movable Type のログイン
  • <$MTStaticWebPath$> は通常の URL での表示

というように、ただ SSL による暗号化して Movable Type にログインしたいだけです。
テンプレート内の <$MTStaticWebPath$> は SSL 使用により影響して欲しくありません。

かといって、mt-config.cgi 内の StaticWebPath では相対パス以外では正しく管理画面が表示されません。
それならばっ!! ということで、mt/lib/MT/Template/ContextHandlers.pm を以下のようにカスタマイズしました。

mt/lib/MT/Template/ContextHandlers.pm

  1. # my $path = $cfg->StaticWebPath;
  2. # if (!$path) {
  3. # $path = $cfg->CGIPath;
  4. # $path .= '/' unless $path =~ m!/$!;
  5. # $path .= 'mt-static/';
  6. # }
  7. my $path = $cfg->CGIPath.'mt-static/';

赤い字の部分をコメントにして、青い字の部分を追加しました。
これは、<$MTStaticWebPath$> の出力結果を無条件に <$MTCGIPath$><$MTStaticWebPath$> にするのと同じことをやってます。

デフォルトでは、mt-config.cgi 内に StaticWebPath が記述されてなかった場合だけ、<$MTCGIPath$><$MTStaticWebPath$> と同様のことをやります。指定があった場合は mt-cofnig.cgi の記述がそのまま使用されます。

じゃぁ、SSL 使用の場合でも mt-config.cgi 中に StaticWebPath を記述しなければいいんじゃん!? と思うのですが、先ほども言ったように StaticWebPath は相対パスでなければログインはできても管理画面の表示上問題がでてしまったんです。

ですので、<$MTStaticWebPath$> タグを使用する場合のみ上記のようなカスタマイズをすることで、管理画面には SSL によるログインしつつ、再構築時は通常の URL という目的を達成できました。

mt/lib/MT/Author.pm も変更しました。
これはコメント投稿時に認証サービスを利用した場合のアイコンを、上記と同様に <$MTCGIPath$> を付けてあげます。

mt/lib/MT/Author.pm

  1. # my $static_path = $app->static_path;
  2. my $static_path = $app->config('CGIPath').$app->static_path;

赤い字の部分をコメントにして、青い字の部分を追加しています。

SSL を利用するメリットは、サーバと通信するすべてにおいて暗号化がされるんだそうです。
通常だとログイン時のパスワードはそのまま転送されますが、SSL を利用することでパスワードを暗号化することができるみたいなので、このカスタマイズをやってみた次第です。

以上です。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

 

コメント用フィード