浏览代码

AMBARI-25487: Change authentication method from get to post (#3541)

Yu Hou 3 年之前
父节点
当前提交
087c85238f
共有 2 个文件被更改,包括 29 次插入2 次删除
  1. 15 2
      ambari-web/app/router.js
  2. 14 0
      ambari-web/app/utils/ajax/ajax.js

+ 15 - 2
ambari-web/app/router.js

@@ -294,13 +294,13 @@ App.Router = Em.Router.extend({
         } else if (xhr.getResponseHeader('User')) {
           var user = xhr.getResponseHeader('User');
           App.ajax.send({
-            name: 'router.login',
+            name: 'router.afterLogin',
             sender: self,
             data: {
               usr: user,
               loginName: encodeURIComponent(user)
             },
-            success: 'loginSuccessCallback',
+            success: 'afterLoginSuccessCallback',
             error: 'loginErrorCallback'
           }).then(function() {
             dfd.resolve(true);
@@ -438,6 +438,19 @@ App.Router = Em.Router.extend({
   },
 
   loginSuccessCallback: function(data, opt, params) {
+    App.ajax.send({
+      name: 'router.afterLogin',
+      sender: this,
+      data: {
+        usr: params.usr,
+        loginName: params.loginName
+      },
+      success: 'afterLoginSuccessCallback',
+      error: 'loginErrorCallback'
+    });
+  },
+
+  afterLoginSuccessCallback: function(data, opt, params) {
     var self = this;
     App.usersMapper.map({"items": [data]});
     this.setUserLoggedIn(data.Users.user_name);

+ 14 - 0
ambari-web/app/utils/ajax/ajax.js

@@ -2396,6 +2396,20 @@ var urls = {
     }
   },
   'router.login': {
+    'real': '/auth',
+    'mock': '/data/users/user_{usr}.json',
+    'type': 'POST',
+    'format': function (data) {
+      var statusCode = jQuery.extend({}, require('data/statusCodes'));
+      statusCode['403'] = function () {
+        console.log("Error code 403: Forbidden.");
+      };
+      return {
+        statusCode: statusCode
+      };
+    }
+  },
+  'router.afterLogin': {
     'real': '/users/{loginName}?fields=*,privileges/PrivilegeInfo/cluster_name,privileges/PrivilegeInfo/permission_name',
     'mock': '/data/users/user_{usr}.json',
     'format': function (data) {