簡體   English   中英

在wso2 api管理器中授權用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM