2017-09-14 61 views
0

我遇到了一個需求,在這個需求中我必須使用一個令牌,它將從第三方獲取,並且需要在不同的事務中重用此令牌,直到過期。我不想在數據庫中保存這個令牌。有什麼方法可以將令牌保存在WSO2 ESB的臨時存儲中,並在需要時重用它,並且我還需要隨時以任何邏輯從WSO2 ESB更新它。在wso2 esb中的臨時存儲

在此先感謝!

問候, 至尊

+0

不知道這是一個好主意,因爲你不知何故INTEGR

值丟失吃了一個有狀態的邏輯。難道你每次都會在查詢中獲得令牌,然後嘗試驗證它,而不是將其存儲在「ESB」中。順便說一下,標記最初是如何設置的?也許你應該看看業務流程服務器 – Nicolas

回答

0

您可以使用此JS腳本保存全球價值並在不同的交易重用:

<script language="js"><![CDATA[       
    var curValue = mc.getEnvironment().getServerContextInformation().getProperty("MyValue"); 
    if (curValue == null) {    
     curValue = 0;   
    } else { 
     curValue++; 
    } 
    mc.getEnvironment().getServerContextInformation().addProperty("MyValue",curValue); 
    mc.setProperty("CurrentValue",curValue); 
]]></script> 

您可以獲得當前值中介裏用GET屬性( 「CurrentValue的」)當你關機/重啓ESB

+0

感謝Jean&Nicolas! @Jean - 如果我們有多個節點(集羣),那麼這個屬性值對於兩個節點都不會相同,我相信。看起來我們在wso2中沒有像數據庫那樣的存儲ESB –

+0

確定您在WSO2 ESB中有一個類似於數據庫的存儲,請查看https://docs.wso2.com/display/CLUSTER44x/Setting+up+the+數據庫 –

+0

您可以在註冊表中創建,更新和讀取值。使用js創建/更新:mc.getConfiguration()。getRegistry()。newResource(「gov:/ trunk/test/MyValue」,false); 。mc.getConfiguration()getRegistry()updateResource( 「GOV:/中繼/測試/ myvalue的」,0);。用get-property('gov:/ trunk/test/MyValue')讀取您的調解內容 –