やりたいこと
SimpleSAMLPHPを使ってIdpを構築してSSOをやっているのですが
いざ、構築し終わったらデフォルトのログインページのまま
これではだめなので変えようとしたところ死ぬほど苦戦したのでメモ
実現方法
デフォルトのログイン画面は
modules/core/templates/loginuserpass.tpl.php
になります
こいつをオーバライドしてやる必要があるわけです。
SimpleSAMLPHPにはテーマ機能があって、すべての画面をカスタマイズできます。
しかしその情報が公式ドキュメントのみなので面倒です
公式の通りにディレクトリを作成します
cd modules
mkdir mymodule
cd mymodule
touch default-enable
cd modules/mymodule
mkdir -p themes/fancytheme
configの設定を変えます
'theme.use' => 'mymodule:fancytheme',
公式の例3を確認すると
たとえば、preprodwarningテンプレートを上書きするには(ファイルはにありますmodules/preprodwarning/templates/warning.php)、新しいファイルを追加する必要があります。
modules/mymodule/themes/fancytheme/preprodwarning/warning.php
モジュールfoomoduleで言うと、bar.phpテンプレートを表示するいくつかのコード要求、SimpleSAMLphpは次のようになります。最初にテーマを確認して、代替品を探してくださいmodules/mymodule/themes/fancytheme/foomodule/bar.php。
見つからない場合、そのモジュールのベーステンプレートを使用します。 modules/foomodule/templates/bar.php
とあるので
loginuserpass
をオーバーライドしたい場合
今回の場合modules/mymodule/themes/fancytheme
にcore
ディレクトリを作成します。(core内のテンプレートのため)
そこにloginuserpass.php
を作成してやれば上書きできます。