2016-10-03 112 views
0

我想向我的用戶配置文件添加自定義布爾聲明。我在http://wso2.org/oidc/claim方言中添加了聲明,然後在http://wso2.org/claims中添加了必要的映射,並且默認支持聲明。我想在該自定義聲明中存儲布爾值(true/false)。一旦我打開一些身份,我就會看到這個聲明的空白值。如果我存儲值「true」並保存配置文件,我會收到一個帶勾號的複選框。如果我然後去更新其他字段的相同身份並點擊保存,布爾值將被保留,我仍然看到帶勾號的複選框(表示「真」值)。然後,我決定取消選中自定義布爾型聲明的值,以便爲聲明存儲「false」值。但是,一旦我點擊「保存」按鈕,我不再看到空的複選框(我期望代表「假」值)。相反,我看到一個空白的領域,期望價值。此時如果我嘗試調用用戶信息端點,則不會檢索提到的自定義聲明。爲了獲得一個虛假的值,我需要去提到的身份,明確鍵入「false」並保存身份。在那之後,我收到了這個索賠的「虛假」價值。然後,如果由於某種原因某人追蹤我並更新了身份的另一部分,我的自定義索賠的「虛假」價值就會丟失,而我陷入前一種情況,並且我無法獲得自定義索賠的價值,因爲它沒有被定義。
我正在使用「帳戶鎖定」聲明,並且我無法觀察此聲明中的此類行爲。我想是因爲它是一種特殊的,因爲它被身份管理使用。
有沒有辦法解決這種情況?目前,我聲稱「必填」,並且您無法使用該聲明的空值(通過IS管理控制檯)保存身份。
當涉及到WSO2 IS 5.0.0中的布爾型聲明時,這是預期的行爲嗎?WSO2 Identity Server 5.0.0布爾類型的聲明

回答

0

這是預期的行爲。聲明可以具有任何值(數字,布爾值,文本等),因此Identity Server無法識別聲明的數據類型。不過布爾值的處理方式有點不同。最初,當您添加索賠時,它將顯示爲文本框,因爲IS無法確定數據類型。一旦保存了用戶配置文件(第一次添加「true」或「false」作爲文本框的值),內部IS將會將此聲明標識爲布爾值。從此之後,它將顯示爲UI中的複選框。

+0

感謝您的回覆。一旦我輸入'false'值並保存它,它確實顯示爲一個空的複選框。但是,如果我編輯身份的其他字段並再次保存,複選框將消失,並且聲明保留空白。如果輸入的值爲真,則不是這種情況。 –

+0

是的,那是IS 5.0.0中的一個錯誤。但是,當IS 5.1.0和5.2.0時,這是固定的。如果您需要在IS 5.0.0上修正此問題,我將能夠幫助您修補特定組件。 –

+0

如果你能提供給我詳細信息如何修補正確的組件以克服上述行爲,那將會很不錯。順便說一下,我正在使用IS 5.0.0 SP1安裝。你認爲如果我安裝Service Pack 2,問題將得到解決,或者我需要特定的其他補丁,應該在我的系統上應用?提前致謝。 –