浏览代码

AMBARI-6933. Rolling restart not working. (swagle via mahadev)

Mahadev Konar 10 年之前
父节点
当前提交
cc9ae3f6f0

+ 23 - 7
ambari-server/src/main/java/org/apache/ambari/server/security/authorization/internal/InternalAuthenticationToken.java

@@ -18,19 +18,26 @@
 
 package org.apache.ambari.server.security.authorization.internal;
 
+import java.util.Collection;
+import java.util.Collections;
+
 import org.apache.ambari.server.orm.entities.PermissionEntity;
 import org.apache.ambari.server.orm.entities.PrivilegeEntity;
+import org.apache.ambari.server.orm.entities.ResourceEntity;
+import org.apache.ambari.server.orm.entities.ResourceTypeEntity;
 import org.apache.ambari.server.security.authorization.AmbariGrantedAuthority;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.User;
-import java.util.Collection;
-import java.util.Collections;
 
 public class InternalAuthenticationToken implements Authentication {
-
+  private static final long serialVersionUID = 1L;
+  
   private static final String INTERNAL_NAME = "internal";
   private static final PrivilegeEntity ADMIN_PRIV_ENTITY = new PrivilegeEntity();
+  static{
+    createAdminPrivilegeEntity(ADMIN_PRIV_ENTITY);
+  }
 
   // used in ClustersImpl, checkPermissions
   private static final Collection<? extends GrantedAuthority> AUTHORITIES =
@@ -40,12 +47,22 @@ public class InternalAuthenticationToken implements Authentication {
   private String token;
   private boolean authenticated = false;
 
-  static{
+
+  private static void createAdminPrivilegeEntity(PrivilegeEntity entity) {
     PermissionEntity pe = new PermissionEntity();
     pe.setId(PermissionEntity.AMBARI_ADMIN_PERMISSION);
     pe.setPermissionName(PermissionEntity.AMBARI_ADMIN_PERMISSION_NAME);
-
-    ADMIN_PRIV_ENTITY.setPermission(pe);
+    
+    entity.setPermission(pe);
+    
+    ResourceEntity resource = new ResourceEntity();
+    resource.setId(1L);
+    
+    ResourceTypeEntity rte = new ResourceTypeEntity();
+    rte.setId(ResourceTypeEntity.CLUSTER_RESOURCE_TYPE);
+    rte.setName(ResourceTypeEntity.CLUSTER_RESOURCE_TYPE_NAME);
+    resource.setResourceType(rte);
+    entity.setResource(resource);
   }
 
   public InternalAuthenticationToken(String tokenString) {
@@ -81,7 +98,6 @@ public class InternalAuthenticationToken implements Authentication {
   public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
     this.authenticated = isAuthenticated;
   }
-
   @Override
   public String getName() {
     return INTERNAL_NAME;