2016-10-03 12 views
0

ユーザープロファイルにカスタムブールクレームを追加しようとしています。私はhttp://wso2.org/oidc/claimの方言で主張を追加し、http://wso2.org/claimsに必要なマッピングを追加し、主張をデフォルトでサポートしました。そのカスタム要求にブール値を格納したい(true/false)。私が何らかのアイデンティティを開くと、私はその主張に空白の価値を見いだします。値「true」を保存してプロファイルを保存すると、チェックボックスが表示されます。その後、同じIDの他のフィールドを更新して[保存]をクリックすると、ブール値が保持され、チェックボックスにチェックマークが表示されます(これは「真」の値を表します)。そして私は、自分のカスタムブールクレームの値をオフにして、クレームの「偽」値を保存することに決めました。しかし、「保存」ボタンをクリックすると、空のチェックボックスが表示されなくなりました(「偽」値を表すことを期待しています)。代わりに私は価値を期待して空白のフィールドを見ている。この時点で、ユーザー情報エンドポイントを呼び出そうとすると、私は上記のカスタム要求を取得していません。それに対して偽の値を受け取るためには、私は前述のアイデンティティに行き、明示的に "false"と入力してアイデンティティを保存する必要があります。その後、私はその主張の "偽"の価値を受け取ります。それから、何らかの理由で誰かが私を追いかけてアイデンティティの別の部分を更新した場合、私のカスタムクレームの「偽」値は失われ、私は前の状況になり、カスタムクレームの価値を得ることができません。それは定義されていません。
"アカウントロックされた"クレームを使用しており、このクレームでこのような動作を観察することはできません。アイデンティティ管理で使用されているので、それは特別なものだからだと思います。
このような状況を回避する方法はありますか?現時点で私はクレームを「必須」にしましたが、クレームの空の値を持つアイデンティティをIS管理コンソールで保存することはできません。
WSO2 IS 5.0.0のブール値要求については、これが期待される動作ですか?WSO2 Identity Server 5.0.0 boolean claim

答えて

0

これは予期された動作です。クレームは任意の値(数値、ブール値、テキストなど)を持つことができるため、Identity Serverはクレームのデータ型を識別できません。しかし、ブール値は少しばかり扱われます。最初にクレームを追加すると、ISはデータタイプを決定できないため、テキストボックスとして表示されます。テキストボックスの値として「真」または「偽」を追加したユーザープロファイルを保存すると(初めての場合)、内部的にISはこの主張をブール値と認識します。それ以降、UIのチェックボックスとして表示されます。

+0

返信いただきありがとうございます。 「偽」値を入力して保存すると、空のチェックボックスのように表示されます。しかし、アイデンティティの他のフィールドを編集してもう一度保存すると、チェックボックスは消え、クレームは空白のままになります。これは、入力された値がtrueの場合には当てはまりません。 –

+0

はい、それはIS 5.0.0のバグです。しかし、これはIS 5.1.0と5.2.0になると修正されます。これをIS 5.0.0で修正する必要がある場合は、特定のコンポーネントにパッチを適用する手助けをすることができます。 –

+0

上記の動作を克服するために正しいコンポーネントにパッチを当てる方法を詳しく教えていただければ幸いです。ところで、私はSP1がインストールされたIS 5.0.0を使用しています。 Service Pack 2をインストールすると、問題は解決するか、システムに適用する必要がある特定の他のパッチが必要になると思いますか?前もって感謝します。 –

関連する問題