You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/03/14 22:11:42 UTC

[16/26] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT

Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT

Conflicts:
	src/server/src/main/java/org/apache/accumulo/server/test/randomwalk/security/SecurityFixture.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/58535fcb
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/58535fcb
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/58535fcb

Branch: refs/heads/ACCUMULO-2061
Commit: 58535fcb3e2dfe2bc5d424947924f95d97a645b5
Parents: bf0b7f7 ea86b44
Author: Bill Havanki <bh...@cloudera.com>
Authored: Thu Mar 13 10:40:15 2014 -0400
Committer: Bill Havanki <bh...@cloudera.com>
Committed: Thu Mar 13 10:40:15 2014 -0400

----------------------------------------------------------------------
 .../apache/accumulo/test/randomwalk/security/SecurityFixture.java  | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/58535fcb/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java
----------------------------------------------------------------------
diff --cc test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java
index a6661ea,0000000..26620a4
mode 100644,000000..100644
--- a/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java
+++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/security/SecurityFixture.java
@@@ -1,101 -1,0 +1,103 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.accumulo.test.randomwalk.security;
 +
 +import java.net.InetAddress;
 +import java.util.Set;
 +
 +import org.apache.accumulo.core.client.Connector;
 +import org.apache.accumulo.core.client.security.tokens.PasswordToken;
 +import org.apache.accumulo.core.security.Authorizations;
 +import org.apache.accumulo.core.security.CredentialHelper;
 +import org.apache.accumulo.core.security.SystemPermission;
 +import org.apache.accumulo.core.security.TablePermission;
 +import org.apache.accumulo.test.randomwalk.Fixture;
 +import org.apache.accumulo.test.randomwalk.State;
 +
 +public class SecurityFixture extends Fixture {
 +  
 +  @Override
 +  public void setUp(State state) throws Exception {
 +    String secTableName, systemUserName, tableUserName;
 +    Connector conn = state.getConnector();
 +    
 +    String hostname = InetAddress.getLocalHost().getHostName().replaceAll("[-.]", "_");
 +    
 +    systemUserName = String.format("system_%s", hostname);
 +    tableUserName = String.format("table_%s", hostname);
 +    secTableName = String.format("security_%s", hostname);
 +    
 +    if (conn.tableOperations().exists(secTableName))
 +      conn.tableOperations().delete(secTableName);
 +    Set<String> users = conn.securityOperations().listLocalUsers();
 +    if (users.contains(tableUserName))
 +      conn.securityOperations().dropLocalUser(tableUserName);
 +    if (users.contains(systemUserName))
 +      conn.securityOperations().dropLocalUser(systemUserName);
 +    
 +    PasswordToken sysUserPass = new PasswordToken("sysUser");
 +    conn.securityOperations().createLocalUser(systemUserName, sysUserPass);
 +    
 +    WalkingSecurity.get(state).setTableName(secTableName);
 +    state.set("rootUserPass", CredentialHelper.extractToken(state.getCredentials()));
 +    
 +    WalkingSecurity.get(state).setSysUserName(systemUserName);
 +    WalkingSecurity.get(state).createUser(systemUserName, sysUserPass);
 +    
 +    WalkingSecurity.get(state).changePassword(tableUserName, new PasswordToken(new byte[0]));
 +    
 +    WalkingSecurity.get(state).setTabUserName(tableUserName);
 +    
 +    for (TablePermission tp : TablePermission.values()) {
 +      WalkingSecurity.get(state).revokeTablePermission(systemUserName, secTableName, tp);
 +      WalkingSecurity.get(state).revokeTablePermission(tableUserName, secTableName, tp);
 +    }
 +    for (SystemPermission sp : SystemPermission.values()) {
 +      WalkingSecurity.get(state).revokeSystemPermission(systemUserName, sp);
 +      WalkingSecurity.get(state).revokeSystemPermission(tableUserName, sp);
 +    }
 +    WalkingSecurity.get(state).changeAuthorizations(tableUserName, new Authorizations());
 +  }
 +  
 +  @Override
 +  public void tearDown(State state) throws Exception {
 +    log.debug("One last validate");
 +    Validate.validate(state, log);
 +    Connector conn = state.getConnector();
 +    
 +    if (WalkingSecurity.get(state).getTableExists()) {
 +      String secTableName = WalkingSecurity.get(state).getTableName();
 +      log.debug("Dropping tables: " + secTableName);
 +      
 +      conn.tableOperations().delete(secTableName);
 +    }
 +    
 +    if (WalkingSecurity.get(state).userExists(WalkingSecurity.get(state).getTabUserName())) {
 +      String tableUserName = WalkingSecurity.get(state).getTabUserName();
 +      log.debug("Dropping user: " + tableUserName);
 +      
 +      conn.securityOperations().dropLocalUser(tableUserName);
 +    }
 +    String systemUserName = WalkingSecurity.get(state).getSysUserName();
 +    log.debug("Dropping user: " + systemUserName);
 +    conn.securityOperations().dropLocalUser(systemUserName);
 +    WalkingSecurity.clearInstance();
 +    
++    // Allow user drops to propagate, in case a new security test starts
++    Thread.sleep(2000);
 +  }
 +}