@Test public void testServer() { privilege = new MSentryPrivilege(null, "server1", null, null, null, null, null); assertEquals("server=server1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, null, AccessConstants.ALL); assertEquals("server=server1", SentryStore.toAuthorizable(privilege)); }
@Test public void testDb() { privilege = new MSentryPrivilege(null, "server1", "db1", null, null, null, null); assertEquals("server=server1->db=db1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", null, null, null, AccessConstants.ALL); assertEquals("server=server1->db=db1", SentryStore.toAuthorizable(privilege)); }
@Test public void testDb() { privilege = new MSentryPrivilege(null, "server1", "db1", null, null, null, null); assertEquals("server=server1->db=db1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", null, null, null, AccessConstants.ALL); assertEquals("server=server1->db=db1", SentryStore.toAuthorizable(privilege)); }
Set<MSentryPrivilege> privileges = new HashSet<MSentryPrivilege>(); for (Object[] privObj : (List<Object[]>) query.execute()) { MSentryPrivilege priv = new MSentryPrivilege(); priv.setPrivilegeScope((String) privObj[0]); priv.setServerName((String) privObj[1]);
@Test public void testServer() { privilege = new MSentryPrivilege(null, "server1", null, null, null, null, null); assertEquals("server=server1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, null, AccessConstants.ALL); assertEquals("server=server1", SentryStore.toAuthorizable(privilege)); }
@Test public void testUri() { privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", null); assertEquals("server=server1->uri=file:///", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", AccessConstants.SELECT); assertEquals("server=server1->uri=file:///->action=select", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", AccessConstants.ALL); assertEquals("server=server1->uri=file:///", SentryStore.toAuthorizable(privilege)); } }
@Test public void testUri() { privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", null); assertEquals("server=server1->uri=file:///", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", AccessConstants.SELECT); assertEquals("server=server1->uri=file:///->action=select", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", null, null, null, "file:///", AccessConstants.ALL); assertEquals("server=server1->uri=file:///", SentryStore.toAuthorizable(privilege)); } }
privilegeGraph.add(mPrivilege); } else { MSentryPrivilege mTure = new MSentryPrivilege(mPrivilege); mTure.setGrantOption(true); privilegeGraph.add(mTure); MSentryPrivilege mFalse = new MSentryPrivilege(mPrivilege); mFalse.setGrantOption(false); privilegeGraph.add(mFalse);
privilegeGraph.add(mPrivilege); } else { MSentryPrivilege mTure = new MSentryPrivilege(mPrivilege); mTure.setGrantOption(true); privilegeGraph.add(mTure); MSentryPrivilege mFalse = new MSentryPrivilege(mPrivilege); mFalse.setGrantOption(false); privilegeGraph.add(mFalse);
@Test public void testTable() { privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, null); assertEquals("server=server1->db=db1->table=tbl1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.INSERT); assertEquals("server=server1->db=db1->table=tbl1->action=insert", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.SELECT); assertEquals("server=server1->db=db1->table=tbl1->action=select", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.ALL); assertEquals("server=server1->db=db1->table=tbl1", SentryStore.toAuthorizable(privilege)); }
@Test public void testTable() { privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, null); assertEquals("server=server1->db=db1->table=tbl1", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.INSERT); assertEquals("server=server1->db=db1->table=tbl1->action=insert", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.SELECT); assertEquals("server=server1->db=db1->table=tbl1->action=select", SentryStore.toAuthorizable(privilege)); privilege = new MSentryPrivilege(null, "server1", "db1", "tbl1", null, null, AccessConstants.ALL); assertEquals("server=server1->db=db1->table=tbl1", SentryStore.toAuthorizable(privilege)); }
Boolean grantOption = (Boolean) privObj[7]; MSentryPrivilege priv = new MSentryPrivilege(scope, serverName, dbName, tableName, columnName, URI, action, grantOption); privileges.add(priv);
@Test public void testImpliesPrivilegeNegativeWithColumn() throws Exception { // 1.test server+database+table+column+action MSentryPrivilege my = new MSentryPrivilege(); MSentryPrivilege your = new MSentryPrivilege(); // bad column my.setServerName("server1"); my.setDbName("db1"); my.setTableName("tb1"); my.setColumnName("c1"); my.setAction(AccessConstants.SELECT); your.setServerName("server1"); your.setDbName("db1"); your.setTableName("tb1"); your.setColumnName("c2"); your.setAction(AccessConstants.SELECT); assertFalse(my.implies(your)); // bad scope your.setColumnName(""); assertFalse(my.implies(your)); } }
@Test public void testImpliesPrivilegeNegativeWithColumn() throws Exception { // 1.test server+database+table+column+action MSentryPrivilege my = new MSentryPrivilege(); MSentryPrivilege your = new MSentryPrivilege(); // bad column my.setServerName("server1"); my.setDbName("db1"); my.setTableName("tb1"); my.setColumnName("c1"); my.setAction(AccessConstants.SELECT); your.setServerName("server1"); your.setDbName("db1"); your.setTableName("tb1"); your.setColumnName("c2"); your.setAction(AccessConstants.SELECT); assertFalse(my.implies(your)); // bad scope your.setColumnName(""); assertFalse(my.implies(your)); } }
/** * Converts thrift object to model object. Additionally does normalization * such as trimming whitespace and setting appropriate case. * @throws SentryInvalidInputException */ private MSentryPrivilege convertToMSentryPrivilege(TSentryPrivilege privilege) throws SentryInvalidInputException { MSentryPrivilege mSentryPrivilege = new MSentryPrivilege(); mSentryPrivilege.setServerName(toNULLCol(safeTrimLower(privilege.getServerName()))); mSentryPrivilege.setDbName(toNULLCol(safeTrimLower(privilege.getDbName()))); mSentryPrivilege.setTableName(toNULLCol(safeTrimLower(privilege.getTableName()))); mSentryPrivilege.setColumnName(toNULLCol(safeTrimLower(privilege.getColumnName()))); mSentryPrivilege.setPrivilegeScope(safeTrim(privilege.getPrivilegeScope())); mSentryPrivilege.setAction(toNULLCol(safeTrimLower(privilege.getAction()))); mSentryPrivilege.setCreateTime(System.currentTimeMillis()); mSentryPrivilege.setURI(toNULLCol(safeTrim(privilege.getURI()))); if ( !privilege.getGrantOption().equals(TSentryGrantOption.UNSET) ) { mSentryPrivilege.setGrantOption(Boolean.valueOf(privilege.getGrantOption().toString())); } else { mSentryPrivilege.setGrantOption(null); } return mSentryPrivilege; }
@Test public void testImpliesPrivilegePositiveWithColumn() throws Exception { // 1.test server+database+table+column+action MSentryPrivilege my = new MSentryPrivilege(); MSentryPrivilege your = new MSentryPrivilege(); my.setServerName("server1"); my.setAction(AccessConstants.SELECT); your.setServerName("server1"); your.setDbName("db1"); your.setTableName("tb1"); your.setColumnName("c1"); your.setAction(AccessConstants.SELECT); assertTrue(my.implies(your)); my.setDbName("db1"); assertTrue(my.implies(your)); my.setTableName("tb1"); assertTrue(my.implies(your)); my.setColumnName("c1"); assertTrue(my.implies(your)); }
/** * Converts thrift object to model object. Additionally does normalization * such as trimming whitespace and setting appropriate case. * @throws SentryInvalidInputException */ private MSentryPrivilege convertToMSentryPrivilege(TSentryPrivilege privilege) throws SentryInvalidInputException { MSentryPrivilege mSentryPrivilege = new MSentryPrivilege(); mSentryPrivilege.setServerName(toNULLCol(safeTrimLower(privilege.getServerName()))); mSentryPrivilege.setDbName(toNULLCol(safeTrimLower(privilege.getDbName()))); mSentryPrivilege.setTableName(toNULLCol(safeTrimLower(privilege.getTableName()))); mSentryPrivilege.setColumnName(toNULLCol(safeTrimLower(privilege.getColumnName()))); mSentryPrivilege.setPrivilegeScope(safeTrim(privilege.getPrivilegeScope())); mSentryPrivilege.setAction(toNULLCol(safeTrimLower(privilege.getAction()))); mSentryPrivilege.setCreateTime(System.currentTimeMillis()); mSentryPrivilege.setURI(toNULLCol(safeTrim(privilege.getURI()))); if ( !privilege.getGrantOption().equals(TSentryGrantOption.UNSET) ) { mSentryPrivilege.setGrantOption(Boolean.valueOf(privilege.getGrantOption().toString())); } else { mSentryPrivilege.setGrantOption(null); } return mSentryPrivilege; } private static String safeTrim(String s) {
@Test public void testImpliesPrivilegePositiveWithColumn() throws Exception { // 1.test server+database+table+column+action MSentryPrivilege my = new MSentryPrivilege(); MSentryPrivilege your = new MSentryPrivilege(); my.setServerName("server1"); my.setAction(AccessConstants.SELECT); your.setServerName("server1"); your.setDbName("db1"); your.setTableName("tb1"); your.setColumnName("c1"); your.setAction(AccessConstants.SELECT); assertTrue(my.implies(your)); my.setDbName("db1"); assertTrue(my.implies(your)); my.setTableName("tb1"); assertTrue(my.implies(your)); my.setColumnName("c1"); assertTrue(my.implies(your)); }
String roleName = "r1"; MSentryPrivilege hivePrivilege = new MSentryPrivilege(); hivePrivilege.setServerName("hive.server1"); hivePrivilege.setDbName("db1");
String roleName = "r1"; MSentryPrivilege hivePrivilege = new MSentryPrivilege(); hivePrivilege.setServerName("hive.server1"); hivePrivilege.setDbName("db1");