[英]authorize user in wso2 api manager
目前,我正在使用wso2 api管理器1.9商店,在訪問商店中的任何內容之前,我們都有一個登錄頁面。 它現在工作正常。
現在,有一個要求,即在我們使用admin / admin登錄時,在wso2 api管理器存儲中的其他域上也要有一個具有Web服務的Web應用程序,以授權用戶,而不是調用其login.jag(用於授權) (在wso2存儲中),它必須調用該Web服務進行授權,並且我們可以使用與該Web應用程序中已經使用的憑據相同的憑據。
因此,為此,在login.js(單擊商店中的登錄按鈕后調用)中,我更改了一些代碼,例如: ACTUAL CODE
loginbox.login = function (username, password, url,tenant) {
jagg.post("/site/blocks/user/login/ajax/login.jag", { action:"login", username:username, password:password,tenant:tenant },
function (result) {
if (result.error == false) {
if (redirectToHTTPS && redirectToHTTPS != "" && redirectToHTTPS != "{}" &&redirectToHTTPS != "null") {
window.location.href = redirectToHTTPS;
} else if(url){
window.location.href = url;
}else{
window.location.href='site/pages/list-apis.jag';
}
} else {
$('#loginErrorMsg').show();
$('#password').val('');
$('#loginErrorMsg div.theMsg').text(result.message).prepend('<strong>'+i18n.t("errorMsgs.login")+'</strong><br />');
}
}, "json");
更改代碼
loginbox.login = function (username, password, url,tenant) {
$.post(authentication_url,function(result){
if(result.statusCode==200){
//will forward it to list-apis to display the apis
window.location.href='site/pages/list-apis?username=test&password=test&tenant=tenant'
}
});
使用此更改的代碼,我從正在調用的Web服務中獲得了預期的響應,但由於在調用site / blocks / user / login / ajax / login.jag之前,無法將它們保留在會話Cookie中將授權用戶,然后檢查csrf令牌和許多其他內容。
誰能讓我知道我想念的地方或需要更改的地方,以便可以授權Webservice中的用戶。
謝謝
您不能將用戶名和密碼傳遞給/ list-api。 它不處理這些參數並將其設置為會話cookie。
window.location.href='site/pages/list-apis?username=test&password=test&tenant=tenant'
我認為您也許可以在api管理器中實現類似於SAML SSO實現的功能。 在SAML情況下,來自IDP的身份驗證響應將作為重定向發送到api管理器。 該請求由/store/jagg/jaggery_acs.jag文件處理。 會話設置在該位置。 您也許可以實現類似的方法來處理重定向並在那里設置會話。 (我沒有嘗試過)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.