[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[upki-fed:00914] Re: embedded-wayf.jsのバグ修正
- Subject: [upki-fed:00914] Re: embedded-wayf.jsのバグ修正
- Date: Mon, 2 Mar 2015 12:30:38 +0900
- From: Junya Nakamura <xxxxx@xxxxxxxxxxxxx>
NII 西村さま
豊橋技術科学大学 中村です。
お世話になっております。
> https://test-sp1.gakunin.nii.ac.jp/secure2/mostusedidps.html
こちらのURLにて、正しく動作していることを確認いたしました。
お忙しい中ご対応いただき、ありがとうございました。
運用フェデレーションの方についても対応いただければ幸いです。
今後ともよろしくお願いいたします。
> On 2015/02/26, at 14:08, Takeshi NISHIMURA <xxxxxxx@xxxxxxxxx> wrote:
>
> 中村様
> NIIの西村です。
>
> 新バージョンの検証および問題のご指摘ありがとうございます。返答遅くなりまして申し訳ございません。
>
> 問題を認識し、テストフェデレーションのDSを更新してみました。
> 以下でテストできます。
> https://test-sp1.gakunin.nii.ac.jp/secure2/mostusedidps.html
>
> 以前のバージョンでの結果を添付しますが、まだ修正不足の部分があるようなので、
> 引き続き調査します。
>
>> 2015/02/20 9:38、Junya Nakamura <xxxxx@xxxxxxxxxxxxx> のメール:
>>
>> 豊橋技術科学大学 中村純哉と申します。
>> お世話になっております。
>>
>> Embedded DS - GakuNinShibInstall - meatwiki:
>> https://meatwiki.nii.ac.jp/confluence/display/GakuNinShibInstall/Embedded+DS
>>
>> こちらの記述を参考に Embedded DS を設定していたところ、
>> https://ds.gakunin.nii.ac.jp/WAYF2/embedded-wayf.js
>> のバグに遭遇しましたので、相談させていただきたく、投稿させて頂きました。
>>
>> バグは、特定のIdPをリストの先頭に表示するためのパラメータ
>> wayf_most_used_idps を設定すると、TypeErrorによってJavaScriptの実
>> 行が失敗する、というものです。そのため、IdPを選択するためのプルダウンメ
>> ニューが表示されず、認証を行うことができません。
>> このとき、FireFox 31.3のコンソールには、
>>
>> TypeError: json_idp_favoritelist[(json_idp_favoritelist.length - 1)]
>> is undefined
>>
>> というエラーが出力されます。
>>
>> embedded-wayf.jsのコードを見たところ wayf_most_used_idps に設定された値
>> を処理している箇所(3724行〜3737行)に問題があることわかりました。具体的
>> には、
>>
>> 問題1: json_idp_listに要素が挿入される前にjson_idp_listを参照している
>> 問題2: json_idp_listの要素を参照するのに整数でなく文字列を使っている
>>
>> という2つが原因で、TypeErrorが発生していました。
>>
>> このバグを修正するパッチを作成しましたので、
>> https://ds.gakunin.nii.ac.jp/WAYF2/embedded-wayf.js
>> で配布しているコードを修正していただけないでしょうか。
>> (パッチは本メール末尾に載せております)
>>
>> 特に複雑な修正は行なっておらず、
>> ・問題1の解決のためにコードの位置を移動
>> ・問題2の解決のためにjson_idp_listの参照方法を変更
>> しただけのものです。
>>
>> 不躾なお願いで申し訳ありませんが、ご検討よろしくお願いいたします。
>>
>> ----
>> 中村 純哉 xxxxx@xxxxxxxxxxxxx
>> 豊橋技術科学大学 情報メディア基盤センター 特任助教
>>
>> --- embedded-wayf.js.orig 2015-02-19 20:22:18.575681660 +0900
>> +++ embedded-wayf.js 2015-02-19 20:23:18.976223437 +0900
>> @@ -3721,20 +3721,6 @@
>> writeHTML('<input name="request_type" type="hidden"
>> value="embedded">');
>> writeHTML('<input id="user_idp" name="user_idp"
>> type="hidden" value="">');
>>
>> - // Favourites
>> - if (wayf_most_used_idps.length > 0){
>> - if(typeof(wayf_overwrite_most_used_idps_text) !=
>> "undefined"){
>> - favorite_idp_group =
>> wayf_overwrite_most_used_idps_text;
>> - }
>> -
>> - // Show additional IdPs in the order they are
>> defined
>> - for ( var i=0; i < wayf_most_used_idps.length; i++){
>> - if (wayf_idps[wayf_most_used_idps[i]]){
>> -
>> json_idp_favoritelist.push(json_idp_list[wayf_most_used_idps[i]]);
>> -
>> json_idp_favoritelist[json_idp_favoritelist.length - 1].categoryName =
>> favorite_idp_group;
>> - }
>> - }
>> - }
>> if (last_idp ==
>> 'https://shib-idp01.iic.hokudai.ac.jp/idp/shibboleth'){
>> dispDefault = '北海道大学';
>> } if
>> (isAllowedType('https://shib-idp01.iic.hokudai.ac.jp/idp/shibboleth','hokkaido')
>> && isAllowedIdP('h
>> ttps://shib-idp01.iic.hokudai.ac.jp/idp/shibboleth')){
>> @@ -5539,6 +5525,28 @@
>> }
>>
>> }
>> +
>> + // Favourites
>> + if (wayf_most_used_idps.length > 0){
>> + if(typeof(wayf_overwrite_most_used_idps_text) !=
>> "undefined"){
>> + favorite_idp_group =
>> wayf_overwrite_most_used_idps_text;
>> + }
>> +
>> + // Show additional IdPs in the order they are
>> defined
>> + for ( var i=0; i < wayf_most_used_idps.length; i++){
>> + if (wayf_idps[wayf_most_used_idps[i]]){
>> +
>> + for (var j=0;
>> j<json_idp_list.length; j++) {
>> + if
>> (json_idp_list[j].entityid == wayf_most_used_idps[i]) {
>> +
>> json_idp_favoritelist.push(json_idp_list[j]);
>> + break;
>> + }
>> + }
>> +
>> json_idp_favoritelist[json_idp_favoritelist.length - 1].categoryName =
>> favorite_idp_group;
>> + }
>> + }
>> + }
>> +
>> writeHTML('<div style="clear:both;"></div>');
>> writeHTML('<table border="0" cellpadding="0"
>> cellspacing="0" style="width: 100%;">');
>> writeHTML('<tr>');
>
> --
> 西村健
> 国立情報学研究所 TEL:03-4212-2890
> <gakuninds-13.png>