You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2016/05/16 04:31:48 UTC
incubator-ranger git commit: RANGER-965: Validate Audit DB to Solr
Migration script from any previous version to 0.6 upgrade
Repository: incubator-ranger
Updated Branches:
refs/heads/master b64218a34 -> 3595251bc
RANGER-965: Validate Audit DB to Solr Migration script from any previous version to 0.6 upgrade
Signed-off-by: Gautam Borad <ga...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/3595251b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/3595251b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/3595251b
Branch: refs/heads/master
Commit: 3595251bcbf82ab704914822695a9265d0158c17
Parents: b64218a
Author: pradeep agrawal <pr...@freestoneinfotech.com>
Authored: Fri May 13 18:47:07 2016 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Mon May 16 10:01:37 2016 +0530
----------------------------------------------------------------------
.../ranger/biz/RangerPolicyRetriever.java | 2 +-
.../org/apache/ranger/common/AppConstants.java | 29 +-
.../org/apache/ranger/db/XXAccessAuditDao.java | 56 +-
.../org/apache/ranger/entity/XXAccessAudit.java | 618 +----------------
.../apache/ranger/entity/XXAccessAuditBase.java | 660 +++++++++++++++++++
.../apache/ranger/entity/XXAccessAuditV4.java | 39 ++
.../apache/ranger/entity/XXAccessAuditV5.java | 86 +++
.../patch/cliutil/DbToSolrMigrationUtil.java | 161 ++++-
.../resources/META-INF/jpa_named_queries.xml | 8 +-
.../conf.dist/ranger-admin-default-site.xml | 9 -
.../main/webapp/META-INF/applicationContext.xml | 4 +-
.../ranger/tagsync/process/TagSyncConfig.java | 4 +
12 files changed, 1025 insertions(+), 651 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
index ec4f165..6b4b149 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyRetriever.java
@@ -490,7 +490,7 @@ public class RangerPolicyRetriever {
ret.setVersion(xPolicy.getVersion());
ret.setService(service == null ? null : service.getName());
ret.setName(xPolicy.getName());
- ret.setPolicyType(xPolicy.getPolicyType());
+ ret.setPolicyType(xPolicy.getPolicyType() == null ? RangerPolicy.POLICY_TYPE_ACCESS : xPolicy.getPolicyType());
ret.setDescription(xPolicy.getDescription());
ret.setResourceSignature(xPolicy.getResourceSignature());
ret.setIsAuditEnabled(xPolicy.getIsAuditEnabled());
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
index e9c7ac0..23d3dbd 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java
@@ -592,11 +592,12 @@ public class AppConstants extends RangerCommonEnums {
* CLASS_TYPE_XA_SERVICE_VERSION_INFO is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE_VERSION_INFO".
*/
public static final int CLASS_TYPE_XA_SERVICE_VERSION_INFO = 1052;
-
+ public static final int CLASS_TYPE_XA_ACCESS_AUDIT_V4 = 1053;
+ public static final int CLASS_TYPE_XA_ACCESS_AUDIT_V5 = 1054;
/**
* Max value for enum ClassTypes_MAX
*/
- public static final int ClassTypes_MAX = 1052;
+ public static final int ClassTypes_MAX = 1054;
/***************************************************************
* Enum values for Default SortOrder
@@ -961,6 +962,12 @@ public class AppConstants extends RangerCommonEnums {
if( elementValue == 1052 ) {
return "XA Service Version Info"; //CLASS_TYPE_XA_SERVICE_VERSION_INFO
}
+ if( elementValue == 1053 ) {
+ return "Access Audit V4"; //CLASS_TYPE_XA_ACCESS_AUDIT_V4
+ }
+ if( elementValue == 1054 ) {
+ return "Access Audit V5"; //CLASS_TYPE_XA_ACCESS_AUDIT_V5
+ }
return null;
}
@@ -1173,6 +1180,15 @@ public class AppConstants extends RangerCommonEnums {
if ("ORACLE".equalsIgnoreCase(label)) {
return DB_FLAVOR_ORACLE; // DB_FLAVOR_ORACLE
}
+ if ("POSTGRES".equalsIgnoreCase(label)) {
+ return DB_FLAVOR_POSTGRES; // DB_FLAVOR_POSTGRES
+ }
+ if ("MSSQL".equalsIgnoreCase(label)) {
+ return DB_FLAVOR_SQLSERVER; // DB_FLAVOR_MSSQL
+ }
+ if ("SQLA".equalsIgnoreCase(label)) {
+ return DB_FLAVOR_SQLANYWHERE; // DB_FLAVOR_SQLANYWHERE
+ }
return DB_FLAVOR_UNKNOWN;
}
@@ -1186,6 +1202,15 @@ public class AppConstants extends RangerCommonEnums {
if (elementValue == DB_FLAVOR_ORACLE) {
return "ORACLE"; // ORACLE
}
+ if (elementValue == DB_FLAVOR_POSTGRES) {
+ return "POSTGRES"; // POSTGRES
+ }
+ if (elementValue == DB_FLAVOR_SQLSERVER) {
+ return "MSSQL"; // MSSQL
+ }
+ if (elementValue == DB_FLAVOR_SQLANYWHERE) {
+ return "SQLA"; // SQLA
+ }
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
index 432dfa9..7bd6a3e 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
@@ -25,6 +25,8 @@ import javax.persistence.NoResultException;
import org.apache.log4j.Logger;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.entity.XXAccessAudit;
+import org.apache.ranger.entity.XXAccessAuditV4;
+import org.apache.ranger.entity.XXAccessAuditV5;
public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
private static Logger logger = Logger.getLogger(XXAccessAuditDao.class);
@@ -46,11 +48,61 @@ public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
}
return maxXXAccessAuditID;
}
- public List<XXAccessAudit> getByIdRange(long idFrom,long idTo){
+
+ @SuppressWarnings("unchecked")
+ public List<String> getColumnNames(String db_flavor){
+ List<String> columnList=new ArrayList<String>();
+ String sqlStr=null;
+ if("MYSQL".equalsIgnoreCase(db_flavor)){
+ sqlStr="SELECT lower(column_name) FROM information_schema.columns WHERE table_schema=database() AND table_name = 'xa_access_audit'";
+ }else if("ORACLE".equalsIgnoreCase(db_flavor)){
+ sqlStr="SELECT lower(column_name) FROM user_tab_cols WHERE table_name = upper('XA_ACCESS_AUDIT')";
+ }else if("POSTGRES".equalsIgnoreCase(db_flavor)){
+ sqlStr="SELECT lower(attname) FROM pg_attribute WHERE attrelid IN(SELECT oid FROM pg_class WHERE relname='xa_access_audit')";
+ }else if("MSSQL".equalsIgnoreCase(db_flavor)){
+ sqlStr="SELECT lower(column_name) FROM INFORMATION_SCHEMA.columns WHERE table_name = 'xa_access_audit'";
+ }else if("SQLA".equalsIgnoreCase(db_flavor)){
+ sqlStr="SELECT lower(cname) FROM SYS.SYSCOLUMNS WHERE tname = 'xa_access_audit'";
+ }else{
+ return columnList;
+ }
+ try {
+ columnList=getEntityManager().createNativeQuery(sqlStr).getResultList();
+ } catch (NoResultException e) {
+ }
+ return columnList;
+ }
+ public List<XXAccessAuditV4> getByIdRangeV4(long idFrom,long idTo){
+ //idFrom and idTo both exclusive
+ List<XXAccessAuditV4> xXAccessAuditList = new ArrayList<XXAccessAuditV4>();
+ try {
+ xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAuditV4.getByIdRangeV4", XXAccessAuditV4.class)
+ .setParameter("idFrom", idFrom)
+ .setParameter("idTo", idTo)
+ .getResultList();
+ } catch (NoResultException e) {
+ logger.debug(e.getMessage());
+ }
+ return xXAccessAuditList;
+ }
+ public List<XXAccessAuditV5> getByIdRangeV5(long idFrom,long idTo){
+ //idFrom and idTo both exclusive
+ List<XXAccessAuditV5> xXAccessAuditList = new ArrayList<XXAccessAuditV5>();
+ try {
+ xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAuditV5.getByIdRangeV5", XXAccessAuditV5.class)
+ .setParameter("idFrom", idFrom)
+ .setParameter("idTo", idTo)
+ .getResultList();
+ } catch (NoResultException e) {
+ logger.debug(e.getMessage());
+ }
+ return xXAccessAuditList;
+ }
+ public List<XXAccessAudit> getByIdRangeV6(long idFrom,long idTo){
//idFrom and idTo both exclusive
List<XXAccessAudit> xXAccessAuditList = new ArrayList<XXAccessAudit>();
try {
- xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAudit.getByIdRange", tClass)
+ xXAccessAuditList= getEntityManager().createNamedQuery("XXAccessAudit.getByIdRangeV6", XXAccessAudit.class)
.setParameter("idFrom", idFrom)
.setParameter("idTo", idTo)
.getResultList();
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
index 96859a7..3043931 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAudit.java
@@ -24,222 +24,17 @@
*
*/
-import java.util.Date;
-
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ranger.common.AppConstants;
-import org.apache.ranger.common.DateUtil;
-import org.apache.ranger.common.RangerConstants;
-
-
@Entity
@Table(name="xa_access_audit")
@XmlRootElement
-public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
+public class XXAccessAudit extends XXAccessAuditBase implements java.io.Serializable {
private static final long serialVersionUID = 1L;
- @Id
- @SequenceGenerator(name="XA_ACCESS_AUDIT_SEQ",sequenceName="XA_ACCESS_AUDIT_SEQ",allocationSize=1)
- @GeneratedValue(strategy=GenerationType.AUTO,generator="XA_ACCESS_AUDIT_SEQ")
- @Column(name="ID")
- protected Long id;
-
- @Override
- public void setId(Long id) {
- this.id=id;
- }
- @Override
- public Long getId() {
- return id;
- }
- /**
- * Repository Type
- * <ul>
- * <li>This attribute is of type enum CommonEnums::AssetType
- * </ul>
- *
- */
- @Column(name="AUDIT_TYPE" , nullable=false )
- protected int auditType = AppConstants.ASSET_UNKNOWN;
-
- /**
- * Access Result
- * <ul>
- * <li>This attribute is of type enum CommonEnums::AccessResult
- * </ul>
- *
- */
- @Column(name="ACCESS_RESULT" )
- protected int accessResult = RangerConstants.ACCESS_RESULT_DENIED;
-
- /**
- * Access Type
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="ACCESS_TYPE" , length=255)
- protected String accessType;
-
- /**
- * Acl Enforcer
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="ACL_ENFORCER" , length=255)
- protected String aclEnforcer;
-
- /**
- * Agent Id
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="AGENT_ID" , length=255)
- protected String agentId;
-
- /**
- * Client Ip
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="CLIENT_IP" , length=255)
- protected String clientIP;
-
- /**
- * Client Type
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="CLIENT_TYPE" , length=255)
- protected String clientType;
-
- /**
- * Policy Id
- * <ul>
- * </ul>
- *
- */
- @Column(name="POLICY_ID" )
- protected long policyId;
-
- /**
- * Repository Name
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="REPO_NAME" , length=255)
- protected String repoName;
-
- /**
- * Repository Type
- * <ul>
- * </ul>
- *
- */
- @Column(name="REPO_TYPE" )
- protected int repoType;
-
- /**
- * Reason of result
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="RESULT_REASON" , length=255)
- protected String resultReason;
-
- /**
- * Session Id
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="SESSION_ID" , length=255)
- protected String sessionId;
-
- /**
- * Event Time
- * <ul>
- * </ul>
- *
- */
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name="EVENT_TIME" )
- protected Date eventTime = DateUtil.getUTCDate();
-
- /**
- * Requesting User
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="REQUEST_USER" , length=255)
- protected String requestUser;
-
- /**
- * Action
- * <ul>
- * <li>The maximum length for this attribute is <b>2000</b>.
- * </ul>
- *
- */
- @Column(name="ACTION" , length=2000)
- protected String action;
-
- /**
- * Requesting Data
- * <ul>
- * <li>The maximum length for this attribute is <b>2000</b>.
- * </ul>
- *
- */
- @Column(name="REQUEST_DATA" , length=2000)
- protected String requestData;
-
- /**
- * Resource Path
- * <ul>
- * <li>The maximum length for this attribute is <b>2000</b>.
- * </ul>
- *
- */
- @Column(name="RESOURCE_PATH" , length=2000)
- protected String resourcePath;
-
- /**
- * Resource Type
- * <ul>
- * <li>The maximum length for this attribute is <b>255</b>.
- * </ul>
- *
- */
- @Column(name="RESOURCE_TYPE" , length=255)
- protected String resourceType;
-
@Column(name="SEQ_NUM")
protected long sequenceNumber;
@@ -250,329 +45,6 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
@Column(name="EVENT_DUR_MS")
protected long eventDuration;
- @Column(name="tags")
- protected String tags;
-
- /**
- * Default constructor. This will set all the attributes to default value.
- */
- public XXAccessAudit ( ) {
- auditType = AppConstants.ASSET_UNKNOWN;
- accessResult = RangerConstants.ACCESS_RESULT_DENIED;
- }
-
- @Override
- public int getMyClassType( ) {
- return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT;
- }
-
- /**
- * This method sets the value to the member attribute <b>auditType</b>.
- * You cannot set null to the attribute.
- * @param auditType Value to set member attribute <b>auditType</b>
- */
- public void setAuditType( int auditType ) {
- this.auditType = auditType;
- }
-
- /**
- * Returns the value for the member attribute <b>auditType</b>
- * @return int - value of member attribute <b>auditType</b>.
- */
- public int getAuditType( ) {
- return this.auditType;
- }
-
- /**
- * This method sets the value to the member attribute <b>accessResult</b>.
- * You cannot set null to the attribute.
- * @param accessResult Value to set member attribute <b>accessResult</b>
- */
- public void setAccessResult( int accessResult ) {
- this.accessResult = accessResult;
- }
-
- /**
- * Returns the value for the member attribute <b>accessResult</b>
- * @return int - value of member attribute <b>accessResult</b>.
- */
- public int getAccessResult( ) {
- return this.accessResult;
- }
-
- /**
- * This method sets the value to the member attribute <b>accessType</b>.
- * You cannot set null to the attribute.
- * @param accessType Value to set member attribute <b>accessType</b>
- */
- public void setAccessType( String accessType ) {
- this.accessType = accessType;
- }
-
- /**
- * Returns the value for the member attribute <b>accessType</b>
- * @return String - value of member attribute <b>accessType</b>.
- */
- public String getAccessType( ) {
- return this.accessType;
- }
-
- /**
- * This method sets the value to the member attribute <b>aclEnforcer</b>.
- * You cannot set null to the attribute.
- * @param aclEnforcer Value to set member attribute <b>aclEnforcer</b>
- */
- public void setAclEnforcer( String aclEnforcer ) {
- this.aclEnforcer = aclEnforcer;
- }
-
- /**
- * Returns the value for the member attribute <b>aclEnforcer</b>
- * @return String - value of member attribute <b>aclEnforcer</b>.
- */
- public String getAclEnforcer( ) {
- return this.aclEnforcer;
- }
-
- /**
- * This method sets the value to the member attribute <b>agentId</b>.
- * You cannot set null to the attribute.
- * @param agentId Value to set member attribute <b>agentId</b>
- */
- public void setAgentId( String agentId ) {
- this.agentId = agentId;
- }
-
- /**
- * Returns the value for the member attribute <b>agentId</b>
- * @return String - value of member attribute <b>agentId</b>.
- */
- public String getAgentId( ) {
- return this.agentId;
- }
-
- /**
- * This method sets the value to the member attribute <b>clientIP</b>.
- * You cannot set null to the attribute.
- * @param clientIP Value to set member attribute <b>clientIP</b>
- */
- public void setClientIP( String clientIP ) {
- this.clientIP = clientIP;
- }
-
- /**
- * Returns the value for the member attribute <b>clientIP</b>
- * @return String - value of member attribute <b>clientIP</b>.
- */
- public String getClientIP( ) {
- return this.clientIP;
- }
-
- /**
- * This method sets the value to the member attribute <b>clientType</b>.
- * You cannot set null to the attribute.
- * @param clientType Value to set member attribute <b>clientType</b>
- */
- public void setClientType( String clientType ) {
- this.clientType = clientType;
- }
-
- /**
- * Returns the value for the member attribute <b>clientType</b>
- * @return String - value of member attribute <b>clientType</b>.
- */
- public String getClientType( ) {
- return this.clientType;
- }
-
- /**
- * This method sets the value to the member attribute <b>policyId</b>.
- * You cannot set null to the attribute.
- * @param policyId Value to set member attribute <b>policyId</b>
- */
- public void setPolicyId( long policyId ) {
- this.policyId = policyId;
- }
-
- /**
- * Returns the value for the member attribute <b>policyId</b>
- * @return long - value of member attribute <b>policyId</b>.
- */
- public long getPolicyId( ) {
- return this.policyId;
- }
-
- /**
- * This method sets the value to the member attribute <b>repoName</b>.
- * You cannot set null to the attribute.
- * @param repoName Value to set member attribute <b>repoName</b>
- */
- public void setRepoName( String repoName ) {
- this.repoName = repoName;
- }
-
- /**
- * Returns the value for the member attribute <b>repoName</b>
- * @return String - value of member attribute <b>repoName</b>.
- */
- public String getRepoName( ) {
- return this.repoName;
- }
-
- /**
- * This method sets the value to the member attribute <b>repoType</b>.
- * You cannot set null to the attribute.
- * @param repoType Value to set member attribute <b>repoType</b>
- */
- public void setRepoType( int repoType ) {
- this.repoType = repoType;
- }
-
- /**
- * Returns the value for the member attribute <b>repoType</b>
- * @return int - value of member attribute <b>repoType</b>.
- */
- public int getRepoType( ) {
- return this.repoType;
- }
-
- /**
- * This method sets the value to the member attribute <b>resultReason</b>.
- * You cannot set null to the attribute.
- * @param resultReason Value to set member attribute <b>resultReason</b>
- */
- public void setResultReason( String resultReason ) {
- this.resultReason = resultReason;
- }
-
- /**
- * Returns the value for the member attribute <b>resultReason</b>
- * @return String - value of member attribute <b>resultReason</b>.
- */
- public String getResultReason( ) {
- return this.resultReason;
- }
-
- /**
- * This method sets the value to the member attribute <b>sessionId</b>.
- * You cannot set null to the attribute.
- * @param sessionId Value to set member attribute <b>sessionId</b>
- */
- public void setSessionId( String sessionId ) {
- this.sessionId = sessionId;
- }
-
- /**
- * Returns the value for the member attribute <b>sessionId</b>
- * @return String - value of member attribute <b>sessionId</b>.
- */
- public String getSessionId( ) {
- return this.sessionId;
- }
-
- /**
- * This method sets the value to the member attribute <b>eventTime</b>.
- * You cannot set null to the attribute.
- * @param eventTime Value to set member attribute <b>eventTime</b>
- */
- public void setEventTime( Date eventTime ) {
- this.eventTime = eventTime;
- }
-
- /**
- * Returns the value for the member attribute <b>eventTime</b>
- * @return Date - value of member attribute <b>eventTime</b>.
- */
- public Date getEventTime( ) {
- return this.eventTime;
- }
-
- /**
- * This method sets the value to the member attribute <b>requestUser</b>.
- * You cannot set null to the attribute.
- * @param requestUser Value to set member attribute <b>requestUser</b>
- */
- public void setRequestUser( String requestUser ) {
- this.requestUser = requestUser;
- }
-
- /**
- * Returns the value for the member attribute <b>requestUser</b>
- * @return String - value of member attribute <b>requestUser</b>.
- */
- public String getRequestUser( ) {
- return this.requestUser;
- }
-
- /**
- * This method sets the value to the member attribute <b>action</b>.
- * You cannot set null to the attribute.
- * @param action Value to set member attribute <b>action</b>
- */
- public void setAction( String action ) {
- this.action = action;
- }
-
- /**
- * Returns the value for the member attribute <b>action</b>
- * @return String - value of member attribute <b>action</b>.
- */
- public String getAction( ) {
- return this.action;
- }
-
- /**
- * This method sets the value to the member attribute <b>requestData</b>.
- * You cannot set null to the attribute.
- * @param requestData Value to set member attribute <b>requestData</b>
- */
- public void setRequestData( String requestData ) {
- this.requestData = requestData;
- }
-
- /**
- * Returns the value for the member attribute <b>requestData</b>
- * @return String - value of member attribute <b>requestData</b>.
- */
- public String getRequestData( ) {
- return this.requestData;
- }
-
- /**
- * This method sets the value to the member attribute <b>resourcePath</b>.
- * You cannot set null to the attribute.
- * @param resourcePath Value to set member attribute <b>resourcePath</b>
- */
- public void setResourcePath( String resourcePath ) {
- this.resourcePath = resourcePath;
- }
-
- /**
- * Returns the value for the member attribute <b>resourcePath</b>
- * @return String - value of member attribute <b>resourcePath</b>.
- */
- public String getResourcePath( ) {
- return this.resourcePath;
- }
-
- /**
- * This method sets the value to the member attribute <b>resourceType</b>.
- * You cannot set null to the attribute.
- * @param resourceType Value to set member attribute <b>resourceType</b>
- */
- public void setResourceType( String resourceType ) {
- this.resourceType = resourceType;
- }
-
- /**
- * Returns the value for the member attribute <b>resourceType</b>
- * @return String - value of member attribute <b>resourceType</b>.
- */
- public String getResourceType( ) {
- return this.resourceType;
- }
-
-
public long getSequenceNumber() {
return sequenceNumber;
}
@@ -591,6 +63,9 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
public void setEventDuration(long eventDuration) {
this.eventDuration = eventDuration;
}
+
+ @Column(name="tags")
+ protected String tags;
/**
* @return the tags
@@ -610,31 +85,11 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
*/
@Override
public String toString( ) {
- String str = "XXAccessAudit={";
- str += super.toString();
- str += "auditType={" + auditType + "} ";
- str += "accessResult={" + accessResult + "} ";
- str += "accessType={" + accessType + "} ";
- str += "aclEnforcer={" + aclEnforcer + "} ";
- str += "agentId={" + agentId + "} ";
- str += "clientIP={" + clientIP + "} ";
- str += "clientType={" + clientType + "} ";
- str += "policyId={" + policyId + "} ";
- str += "repoName={" + repoName + "} ";
- str += "repoType={" + repoType + "} ";
- str += "resultReason={" + resultReason + "} ";
- str += "sessionId={" + sessionId + "} ";
- str += "eventTime={" + eventTime + "} ";
- str += "requestUser={" + requestUser + "} ";
- str += "action={" + action + "} ";
- str += "requestData={" + requestData + "} ";
- str += "resourcePath={" + resourcePath + "} ";
- str += "resourceType={" + resourceType + "} ";
+ String str = super.toString();
str += "sequenceNumber={" + sequenceNumber + "}";
str += "eventCount={" + eventCount + "}";
str += "eventDuration={" + eventDuration + "}";
str += "tags={" + tags + "}";
- str += "}";
return str;
}
@@ -648,67 +103,10 @@ public class XXAccessAudit extends XXDBBase implements java.io.Serializable {
return false;
}
XXAccessAudit other = (XXAccessAudit) obj;
- if( this.auditType != other.auditType ) return false;
- if( this.accessResult != other.accessResult ) return false;
- if ((this.accessType == null && other.accessType != null) || (this.accessType != null && !this.accessType.equals(other.accessType))) {
- return false;
- }
- if ((this.aclEnforcer == null && other.aclEnforcer != null) || (this.aclEnforcer != null && !this.aclEnforcer.equals(other.aclEnforcer))) {
- return false;
- }
- if ((this.agentId == null && other.agentId != null) || (this.agentId != null && !this.agentId.equals(other.agentId))) {
- return false;
- }
- if ((this.clientIP == null && other.clientIP != null) || (this.clientIP != null && !this.clientIP.equals(other.clientIP))) {
- return false;
- }
- if ((this.clientType == null && other.clientType != null) || (this.clientType != null && !this.clientType.equals(other.clientType))) {
- return false;
- }
- if( this.policyId != other.policyId ) return false;
- if ((this.repoName == null && other.repoName != null) || (this.repoName != null && !this.repoName.equals(other.repoName))) {
- return false;
- }
- if( this.repoType != other.repoType ) return false;
- if ((this.resultReason == null && other.resultReason != null) || (this.resultReason != null && !this.resultReason.equals(other.resultReason))) {
- return false;
- }
- if ((this.sessionId == null && other.sessionId != null) || (this.sessionId != null && !this.sessionId.equals(other.sessionId))) {
- return false;
- }
- if ((this.eventTime == null && other.eventTime != null) || (this.eventTime != null && !this.eventTime.equals(other.eventTime))) {
- return false;
- }
- if ((this.requestUser == null && other.requestUser != null) || (this.requestUser != null && !this.requestUser.equals(other.requestUser))) {
- return false;
- }
- if ((this.action == null && other.action != null) || (this.action != null && !this.action.equals(other.action))) {
- return false;
- }
- if ((this.requestData == null && other.requestData != null) || (this.requestData != null && !this.requestData.equals(other.requestData))) {
- return false;
- }
- if ((this.resourcePath == null && other.resourcePath != null) || (this.resourcePath != null && !this.resourcePath.equals(other.resourcePath))) {
- return false;
- }
- if ((this.resourceType == null && other.resourceType != null) || (this.resourceType != null && !this.resourceType.equals(other.resourceType))) {
- return false;
- }
- if ((this.tags == null && other.tags != null) || (this.tags != null && !this.tags.equals(other.tags))) {
- return false;
- }
- return true;
- }
- public static String getEnumName(String fieldName ) {
- if( fieldName.equals("auditType") ) {
- return "CommonEnums.AssetType";
- }
- if( fieldName.equals("accessResult") ) {
- return "CommonEnums.AccessResult";
+ if ((this.tags == null && other.tags != null) || (this.tags != null && !this.tags.equals(other.tags))) {
+ return false;
}
- //Later TODO
- //return super.getEnumName(fieldName);
- return null;
+ return true;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
new file mode 100644
index 0000000..8287d31
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditBase.java
@@ -0,0 +1,660 @@
+/*
+ * 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.ranger.entity;
+
+/**
+ * Access Audit
+ *
+ */
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.DateUtil;
+import org.apache.ranger.common.RangerConstants;
+
+@MappedSuperclass
+@XmlRootElement
+public class XXAccessAuditBase extends XXDBBase implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @SequenceGenerator(name="XA_ACCESS_AUDIT_SEQ",sequenceName="XA_ACCESS_AUDIT_SEQ",allocationSize=1)
+ @GeneratedValue(strategy=GenerationType.AUTO,generator="XA_ACCESS_AUDIT_SEQ")
+ @Column(name="ID")
+ protected Long id;
+
+ @Override
+ public void setId(Long id) {
+ this.id=id;
+ }
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * Repository Type
+ * <ul>
+ * <li>This attribute is of type enum CommonEnums::AssetType
+ * </ul>
+ *
+ */
+ @Column(name="AUDIT_TYPE" , nullable=false )
+ protected int auditType = AppConstants.ASSET_UNKNOWN;
+
+ /**
+ * Access Result
+ * <ul>
+ * <li>This attribute is of type enum CommonEnums::AccessResult
+ * </ul>
+ *
+ */
+ @Column(name="ACCESS_RESULT" )
+ protected int accessResult = RangerConstants.ACCESS_RESULT_DENIED;
+
+ /**
+ * Access Type
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="ACCESS_TYPE" , length=255)
+ protected String accessType;
+
+ /**
+ * Acl Enforcer
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="ACL_ENFORCER" , length=255)
+ protected String aclEnforcer;
+
+ /**
+ * Agent Id
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="AGENT_ID" , length=255)
+ protected String agentId;
+
+ /**
+ * Client Ip
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="CLIENT_IP" , length=255)
+ protected String clientIP;
+
+ /**
+ * Client Type
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="CLIENT_TYPE" , length=255)
+ protected String clientType;
+
+ /**
+ * Policy Id
+ * <ul>
+ * </ul>
+ *
+ */
+ @Column(name="POLICY_ID" )
+ protected long policyId;
+
+ /**
+ * Repository Name
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="REPO_NAME" , length=255)
+ protected String repoName;
+
+ /**
+ * Repository Type
+ * <ul>
+ * </ul>
+ *
+ */
+ @Column(name="REPO_TYPE" )
+ protected int repoType;
+
+ /**
+ * Reason of result
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="RESULT_REASON" , length=255)
+ protected String resultReason;
+
+ /**
+ * Session Id
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="SESSION_ID" , length=255)
+ protected String sessionId;
+
+ /**
+ * Event Time
+ * <ul>
+ * </ul>
+ *
+ */
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column(name="EVENT_TIME" )
+ protected Date eventTime = DateUtil.getUTCDate();
+
+ /**
+ * Requesting User
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="REQUEST_USER" , length=255)
+ protected String requestUser;
+
+ /**
+ * Action
+ * <ul>
+ * <li>The maximum length for this attribute is <b>2000</b>.
+ * </ul>
+ *
+ */
+ @Column(name="ACTION" , length=2000)
+ protected String action;
+
+ /**
+ * Requesting Data
+ * <ul>
+ * <li>The maximum length for this attribute is <b>2000</b>.
+ * </ul>
+ *
+ */
+ @Column(name="REQUEST_DATA" , length=2000)
+ protected String requestData;
+
+ /**
+ * Resource Path
+ * <ul>
+ * <li>The maximum length for this attribute is <b>2000</b>.
+ * </ul>
+ *
+ */
+ @Column(name="RESOURCE_PATH" , length=2000)
+ protected String resourcePath;
+
+ /**
+ * Resource Type
+ * <ul>
+ * <li>The maximum length for this attribute is <b>255</b>.
+ * </ul>
+ *
+ */
+ @Column(name="RESOURCE_TYPE" , length=255)
+ protected String resourceType;
+
+
+
+ /**
+ * Default constructor. This will set all the attributes to default value.
+ */
+ public XXAccessAuditBase ( ) {
+ auditType = AppConstants.ASSET_UNKNOWN;
+ accessResult = RangerConstants.ACCESS_RESULT_DENIED;
+ }
+
+ @Override
+ public int getMyClassType( ) {
+ return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>auditType</b>.
+ * You cannot set null to the attribute.
+ * @param auditType Value to set member attribute <b>auditType</b>
+ */
+ public void setAuditType( int auditType ) {
+ this.auditType = auditType;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>auditType</b>
+ * @return int - value of member attribute <b>auditType</b>.
+ */
+ public int getAuditType( ) {
+ return this.auditType;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>accessResult</b>.
+ * You cannot set null to the attribute.
+ * @param accessResult Value to set member attribute <b>accessResult</b>
+ */
+ public void setAccessResult( int accessResult ) {
+ this.accessResult = accessResult;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>accessResult</b>
+ * @return int - value of member attribute <b>accessResult</b>.
+ */
+ public int getAccessResult( ) {
+ return this.accessResult;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>accessType</b>.
+ * You cannot set null to the attribute.
+ * @param accessType Value to set member attribute <b>accessType</b>
+ */
+ public void setAccessType( String accessType ) {
+ this.accessType = accessType;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>accessType</b>
+ * @return String - value of member attribute <b>accessType</b>.
+ */
+ public String getAccessType( ) {
+ return this.accessType;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>aclEnforcer</b>.
+ * You cannot set null to the attribute.
+ * @param aclEnforcer Value to set member attribute <b>aclEnforcer</b>
+ */
+ public void setAclEnforcer( String aclEnforcer ) {
+ this.aclEnforcer = aclEnforcer;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>aclEnforcer</b>
+ * @return String - value of member attribute <b>aclEnforcer</b>.
+ */
+ public String getAclEnforcer( ) {
+ return this.aclEnforcer;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>agentId</b>.
+ * You cannot set null to the attribute.
+ * @param agentId Value to set member attribute <b>agentId</b>
+ */
+ public void setAgentId( String agentId ) {
+ this.agentId = agentId;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>agentId</b>
+ * @return String - value of member attribute <b>agentId</b>.
+ */
+ public String getAgentId( ) {
+ return this.agentId;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>clientIP</b>.
+ * You cannot set null to the attribute.
+ * @param clientIP Value to set member attribute <b>clientIP</b>
+ */
+ public void setClientIP( String clientIP ) {
+ this.clientIP = clientIP;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>clientIP</b>
+ * @return String - value of member attribute <b>clientIP</b>.
+ */
+ public String getClientIP( ) {
+ return this.clientIP;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>clientType</b>.
+ * You cannot set null to the attribute.
+ * @param clientType Value to set member attribute <b>clientType</b>
+ */
+ public void setClientType( String clientType ) {
+ this.clientType = clientType;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>clientType</b>
+ * @return String - value of member attribute <b>clientType</b>.
+ */
+ public String getClientType( ) {
+ return this.clientType;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>policyId</b>.
+ * You cannot set null to the attribute.
+ * @param policyId Value to set member attribute <b>policyId</b>
+ */
+ public void setPolicyId( long policyId ) {
+ this.policyId = policyId;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>policyId</b>
+ * @return long - value of member attribute <b>policyId</b>.
+ */
+ public long getPolicyId( ) {
+ return this.policyId;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>repoName</b>.
+ * You cannot set null to the attribute.
+ * @param repoName Value to set member attribute <b>repoName</b>
+ */
+ public void setRepoName( String repoName ) {
+ this.repoName = repoName;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>repoName</b>
+ * @return String - value of member attribute <b>repoName</b>.
+ */
+ public String getRepoName( ) {
+ return this.repoName;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>repoType</b>.
+ * You cannot set null to the attribute.
+ * @param repoType Value to set member attribute <b>repoType</b>
+ */
+ public void setRepoType( int repoType ) {
+ this.repoType = repoType;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>repoType</b>
+ * @return int - value of member attribute <b>repoType</b>.
+ */
+ public int getRepoType( ) {
+ return this.repoType;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>resultReason</b>.
+ * You cannot set null to the attribute.
+ * @param resultReason Value to set member attribute <b>resultReason</b>
+ */
+ public void setResultReason( String resultReason ) {
+ this.resultReason = resultReason;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>resultReason</b>
+ * @return String - value of member attribute <b>resultReason</b>.
+ */
+ public String getResultReason( ) {
+ return this.resultReason;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>sessionId</b>.
+ * You cannot set null to the attribute.
+ * @param sessionId Value to set member attribute <b>sessionId</b>
+ */
+ public void setSessionId( String sessionId ) {
+ this.sessionId = sessionId;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>sessionId</b>
+ * @return String - value of member attribute <b>sessionId</b>.
+ */
+ public String getSessionId( ) {
+ return this.sessionId;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>eventTime</b>.
+ * You cannot set null to the attribute.
+ * @param eventTime Value to set member attribute <b>eventTime</b>
+ */
+ public void setEventTime( Date eventTime ) {
+ this.eventTime = eventTime;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>eventTime</b>
+ * @return Date - value of member attribute <b>eventTime</b>.
+ */
+ public Date getEventTime( ) {
+ return this.eventTime;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>requestUser</b>.
+ * You cannot set null to the attribute.
+ * @param requestUser Value to set member attribute <b>requestUser</b>
+ */
+ public void setRequestUser( String requestUser ) {
+ this.requestUser = requestUser;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>requestUser</b>
+ * @return String - value of member attribute <b>requestUser</b>.
+ */
+ public String getRequestUser( ) {
+ return this.requestUser;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>action</b>.
+ * You cannot set null to the attribute.
+ * @param action Value to set member attribute <b>action</b>
+ */
+ public void setAction( String action ) {
+ this.action = action;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>action</b>
+ * @return String - value of member attribute <b>action</b>.
+ */
+ public String getAction( ) {
+ return this.action;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>requestData</b>.
+ * You cannot set null to the attribute.
+ * @param requestData Value to set member attribute <b>requestData</b>
+ */
+ public void setRequestData( String requestData ) {
+ this.requestData = requestData;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>requestData</b>
+ * @return String - value of member attribute <b>requestData</b>.
+ */
+ public String getRequestData( ) {
+ return this.requestData;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>resourcePath</b>.
+ * You cannot set null to the attribute.
+ * @param resourcePath Value to set member attribute <b>resourcePath</b>
+ */
+ public void setResourcePath( String resourcePath ) {
+ this.resourcePath = resourcePath;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>resourcePath</b>
+ * @return String - value of member attribute <b>resourcePath</b>.
+ */
+ public String getResourcePath( ) {
+ return this.resourcePath;
+ }
+
+ /**
+ * This method sets the value to the member attribute <b>resourceType</b>.
+ * You cannot set null to the attribute.
+ * @param resourceType Value to set member attribute <b>resourceType</b>
+ */
+ public void setResourceType( String resourceType ) {
+ this.resourceType = resourceType;
+ }
+
+ /**
+ * Returns the value for the member attribute <b>resourceType</b>
+ * @return String - value of member attribute <b>resourceType</b>.
+ */
+ public String getResourceType( ) {
+ return this.resourceType;
+ }
+
+ /**
+ * This return the bean content in string format
+ * @return formatedStr
+ */
+ @Override
+ public String toString( ) {
+ String str = "XXAccessAudit=";
+ str += super.toString();
+ str += "id={" + id + "} ";
+ str += "auditType={" + auditType + "} ";
+ str += "accessResult={" + accessResult + "} ";
+ str += "accessType={" + accessType + "} ";
+ str += "aclEnforcer={" + aclEnforcer + "} ";
+ str += "agentId={" + agentId + "} ";
+ str += "clientIP={" + clientIP + "} ";
+ str += "clientType={" + clientType + "} ";
+ str += "policyId={" + policyId + "} ";
+ str += "repoName={" + repoName + "} ";
+ str += "repoType={" + repoType + "} ";
+ str += "resultReason={" + resultReason + "} ";
+ str += "sessionId={" + sessionId + "} ";
+ str += "eventTime={" + eventTime + "} ";
+ str += "requestUser={" + requestUser + "} ";
+ str += "action={" + action + "} ";
+ str += "requestData={" + requestData + "} ";
+ str += "resourcePath={" + resourcePath + "} ";
+ str += "resourceType={" + resourceType + "} ";
+ return str;
+ }
+
+ /**
+ * Checks for all attributes except referenced db objects
+ * @return true if all attributes match
+ */
+ @Override
+ public boolean equals( Object obj) {
+ if ( !super.equals(obj) ) {
+ return false;
+ }
+ XXAccessAuditBase other = (XXAccessAuditBase) obj;
+ if( this.auditType != other.auditType ) return false;
+ if( this.accessResult != other.accessResult ) return false;
+ if ((this.accessType == null && other.accessType != null) || (this.accessType != null && !this.accessType.equals(other.accessType))) {
+ return false;
+ }
+ if ((this.aclEnforcer == null && other.aclEnforcer != null) || (this.aclEnforcer != null && !this.aclEnforcer.equals(other.aclEnforcer))) {
+ return false;
+ }
+ if ((this.agentId == null && other.agentId != null) || (this.agentId != null && !this.agentId.equals(other.agentId))) {
+ return false;
+ }
+ if ((this.clientIP == null && other.clientIP != null) || (this.clientIP != null && !this.clientIP.equals(other.clientIP))) {
+ return false;
+ }
+ if ((this.clientType == null && other.clientType != null) || (this.clientType != null && !this.clientType.equals(other.clientType))) {
+ return false;
+ }
+ if( this.policyId != other.policyId ) return false;
+ if ((this.repoName == null && other.repoName != null) || (this.repoName != null && !this.repoName.equals(other.repoName))) {
+ return false;
+ }
+ if( this.repoType != other.repoType ) return false;
+ if ((this.resultReason == null && other.resultReason != null) || (this.resultReason != null && !this.resultReason.equals(other.resultReason))) {
+ return false;
+ }
+ if ((this.sessionId == null && other.sessionId != null) || (this.sessionId != null && !this.sessionId.equals(other.sessionId))) {
+ return false;
+ }
+ if ((this.eventTime == null && other.eventTime != null) || (this.eventTime != null && !this.eventTime.equals(other.eventTime))) {
+ return false;
+ }
+ if ((this.requestUser == null && other.requestUser != null) || (this.requestUser != null && !this.requestUser.equals(other.requestUser))) {
+ return false;
+ }
+ if ((this.action == null && other.action != null) || (this.action != null && !this.action.equals(other.action))) {
+ return false;
+ }
+ if ((this.requestData == null && other.requestData != null) || (this.requestData != null && !this.requestData.equals(other.requestData))) {
+ return false;
+ }
+ if ((this.resourcePath == null && other.resourcePath != null) || (this.resourcePath != null && !this.resourcePath.equals(other.resourcePath))) {
+ return false;
+ }
+ if ((this.resourceType == null && other.resourceType != null) || (this.resourceType != null && !this.resourceType.equals(other.resourceType))) {
+ return false;
+ }
+ return true;
+ }
+ public static String getEnumName(String fieldName ) {
+ if( fieldName.equals("auditType") ) {
+ return "CommonEnums.AssetType";
+ }
+ if( fieldName.equals("accessResult") ) {
+ return "CommonEnums.AccessResult";
+ }
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
new file mode 100644
index 0000000..54e3cb3
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV4.java
@@ -0,0 +1,39 @@
+/*
+ * 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.ranger.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+
+@Entity
+@XmlRootElement
+@Table(name = "xa_access_audit")
+public class XXAccessAuditV4 extends XXAccessAuditBase implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getMyClassType() {
+ return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT_V4;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
new file mode 100644
index 0000000..ff0f4f1
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessAuditV5.java
@@ -0,0 +1,86 @@
+/*
+ * 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.ranger.entity;
+
+/**
+ * Access Audit
+ *
+ */
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.ranger.common.AppConstants;
+
+@Entity
+@XmlRootElement
+@Table(name = "xa_access_audit")
+public class XXAccessAuditV5 extends XXAccessAuditBase implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getMyClassType() {
+ return AppConstants.CLASS_TYPE_XA_ACCESS_AUDIT_V5;
+ }
+
+ @Column(name="SEQ_NUM")
+ protected long sequenceNumber;
+
+ @Column(name="EVENT_COUNT")
+ protected long eventCount;
+
+ //event duration in ms
+ @Column(name="EVENT_DUR_MS")
+ protected long eventDuration;
+
+ public long getSequenceNumber() {
+ return sequenceNumber;
+ }
+ public void setSequenceNumber(long sequenceNumber) {
+ this.sequenceNumber = sequenceNumber;
+ }
+ public long getEventCount() {
+ return eventCount;
+ }
+ public void setEventCount(long eventCount) {
+ this.eventCount = eventCount;
+ }
+ public long getEventDuration() {
+ return eventDuration;
+ }
+ public void setEventDuration(long eventDuration) {
+ this.eventDuration = eventDuration;
+ }
+
+ /**
+ * This return the bean content in string format
+ * @return formatedStr
+ */
+ @Override
+ public String toString( ) {
+ String str = super.toString();
+ str += "sequenceNumber={" + sequenceNumber + "}";
+ str += "eventCount={" + eventCount + "}";
+ str += "eventDuration={" + eventDuration + "}";
+ return str;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
index 9ce1a12..433f5c9 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
@@ -29,9 +29,14 @@ import java.util.UUID;
import org.apache.log4j.Logger;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.entity.XXAccessAudit;
+import org.apache.ranger.entity.XXAccessAuditBase;
+import org.apache.ranger.entity.XXAccessAuditV4;
+import org.apache.ranger.entity.XXAccessAuditV5;
import org.apache.ranger.patch.BaseLoader;
import org.apache.ranger.solr.SolrAccessAuditsService;
import org.apache.ranger.authorization.utils.StringUtil;
+import org.apache.ranger.biz.RangerBizUtil;
+import org.apache.ranger.common.AppConstants;
import org.apache.ranger.common.DateUtil;
import org.apache.ranger.common.PropertiesUtil;
import org.apache.ranger.util.CLIUtil;
@@ -41,6 +46,7 @@ import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
@Component
public class DbToSolrMigrationUtil extends BaseLoader {
@@ -86,9 +92,11 @@ public class DbToSolrMigrationUtil extends BaseLoader {
}
public void migrateAuditDbLogsToSolr() {
+ System.out.println("Migration process is started..");
long maxXXAccessAuditID = daoManager.getXXAccessAudit().getMaxIdOfXXAccessAudit();
if(maxXXAccessAuditID==0){
logger.info("Access Audit log does not exist.");
+ System.out.println("Access Audit log does not exist in db.");
return;
}
long maxMigratedID=0;
@@ -103,8 +111,21 @@ public class DbToSolrMigrationUtil extends BaseLoader {
}
if(maxMigratedID>=maxXXAccessAuditID){
logger.info("No more DB Audit logs to migrate. Last migrated audit log ID: " + maxMigratedID);
+ System.out.println("No more DB Audit logs to migrate. Last migrated audit log ID: " + maxMigratedID);
return;
}
+ String db_flavor=AppConstants.getLabelFor_DatabaseFlavor(RangerBizUtil.getDBFlavor());
+ logger.info("DB flavor: " + db_flavor);
+ List<String> columnList=daoManager.getXXAccessAudit().getColumnNames(db_flavor);
+ int auditTableVersion=4;
+ if(columnList!=null){
+ if(columnList.contains("tags")){
+ auditTableVersion=6;
+ }else if(columnList.contains("seq_num") && columnList.contains("event_count") && columnList.contains("event_dur_ms")){
+ auditTableVersion=5;
+ }
+ }
+ logger.info("Columns Name:"+columnList);
long maxRowsPerBatch=10000;
//To ceil the actual division result i.e noOfBatches=maxXXAccessAuditID/maxRowsPerBatch
long noOfBatches=((maxXXAccessAuditID-maxMigratedID)+maxRowsPerBatch-1)/maxRowsPerBatch;
@@ -112,21 +133,72 @@ public class DbToSolrMigrationUtil extends BaseLoader {
long rangeEnd=maxXXAccessAuditID-maxMigratedID<=maxRowsPerBatch ? maxXXAccessAuditID : rangeStart+maxRowsPerBatch;
long startTimeInMS=0;
long timeTaken=0;
- List<XXAccessAudit> xXAccessAuditList=null;
+ long lastMigratedID=0;
+ long totalMigratedLogs=0;
for(long index=1;index<=noOfBatches;index++){
logger.info("Batch "+ index+" of total "+noOfBatches);
+ System.out.println("Processing batch "+ index+" of total "+noOfBatches);
startTimeInMS=System.currentTimeMillis();
//rangeStart and rangeEnd both exclusive, if we add +1 in maxRange
- xXAccessAuditList=daoManager.getXXAccessAudit().getByIdRange(rangeStart,rangeEnd+1);
- for(XXAccessAudit xXAccessAudit:xXAccessAuditList){
- if(xXAccessAudit!=null){
- try {
- send2solr(xXAccessAudit);
- } catch (Throwable e) {
- logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
- writeMigrationStatusFile(xXAccessAudit.getId(),CHECK_FILE_NAME);
- logger.info("Stopping migration process!");
- return;
+ if(auditTableVersion==4){
+ List<XXAccessAuditV4> xXAccessAuditV4List=daoManager.getXXAccessAudit().getByIdRangeV4(rangeStart,rangeEnd+1);
+ if(!CollectionUtils.isEmpty(xXAccessAuditV4List)){
+ for(XXAccessAuditV4 xXAccessAudit:xXAccessAuditV4List){
+ if(xXAccessAudit!=null){
+ try {
+ send2solr(xXAccessAudit);
+ lastMigratedID=xXAccessAudit.getId();
+ totalMigratedLogs++;
+ } catch (Throwable e) {
+ logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+ writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+ logger.info("Stopping migration process!");
+ System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+ System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+ return;
+ }
+ }
+ }
+ }
+ }else if(auditTableVersion==5){
+ List<XXAccessAuditV5> xXAccessAuditV5List=daoManager.getXXAccessAudit().getByIdRangeV5(rangeStart,rangeEnd+1);
+ if(!CollectionUtils.isEmpty(xXAccessAuditV5List)){
+ for(XXAccessAuditV5 xXAccessAudit:xXAccessAuditV5List){
+ if(xXAccessAudit!=null){
+ try {
+ send2solr(xXAccessAudit);
+ lastMigratedID=xXAccessAudit.getId();
+ totalMigratedLogs++;
+ } catch (Throwable e) {
+ logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+ writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+ logger.info("Stopping migration process!");
+ System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+ System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+ return;
+ }
+ }
+ }
+ }
+ }
+ else if(auditTableVersion==6){
+ List<XXAccessAudit> xXAccessAuditV6List=daoManager.getXXAccessAudit().getByIdRangeV6(rangeStart,rangeEnd+1);
+ if(!CollectionUtils.isEmpty(xXAccessAuditV6List)){
+ for(XXAccessAudit xXAccessAudit:xXAccessAuditV6List){
+ if(xXAccessAudit!=null){
+ try {
+ send2solr(xXAccessAudit);
+ lastMigratedID=xXAccessAudit.getId();
+ totalMigratedLogs++;
+ } catch (Throwable e) {
+ logger.error("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.", e);
+ writeMigrationStatusFile(lastMigratedID,CHECK_FILE_NAME);
+ logger.info("Stopping migration process!");
+ System.out.println("Error while writing audit log id '"+xXAccessAudit.getId()+"' to Solr.");
+ System.out.println("Migration process failed, Please refer ranger_db_patch.log file.");
+ return;
+ }
+ }
}
}
}
@@ -140,12 +212,48 @@ public class DbToSolrMigrationUtil extends BaseLoader {
rangeStart=rangeEnd;
rangeEnd=rangeEnd+maxRowsPerBatch;
}
-
+ if(totalMigratedLogs>0){
+ System.out.println("Total Number of Migrated Audit logs:"+totalMigratedLogs);
+ logger.info("Total Number of Migrated Audit logs:"+totalMigratedLogs);
+ }
+ System.out.println("Migration process finished!!");
+ }
+
+ public void send2solr(XXAccessAuditV4 xXAccessAudit) throws Throwable {
+ SolrInputDocument document = new SolrInputDocument();
+ toSolrDocument(xXAccessAudit,document);
+ UpdateResponse response = solrServer.add(document);
+ if (response.getStatus() != 0) {
+ logger.info("Response=" + response.toString() + ", status= "
+ + response.getStatus() + ", event=" + xXAccessAudit.toString());
+ throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+ }
+ }
+
+ public void send2solr(XXAccessAuditV5 xXAccessAudit) throws Throwable {
+ SolrInputDocument document = new SolrInputDocument();
+ toSolrDocument(xXAccessAudit,document);
+ UpdateResponse response = solrServer.add(document);
+ if (response.getStatus() != 0) {
+ logger.info("Response=" + response.toString() + ", status= "
+ + response.getStatus() + ", event=" + xXAccessAudit.toString());
+ throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+ }
}
public void send2solr(XXAccessAudit xXAccessAudit) throws Throwable {
- boolean uidIsString = true;
SolrInputDocument document = new SolrInputDocument();
+ toSolrDocument(xXAccessAudit,document);
+ UpdateResponse response = solrServer.add(document);
+ if (response.getStatus() != 0) {
+ logger.info("Response=" + response.toString() + ", status= "
+ + response.getStatus() + ", event=" + xXAccessAudit.toString());
+ throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
+ }
+ }
+
+ private void toSolrDocument(XXAccessAuditBase xXAccessAudit, SolrInputDocument document) {
+ // add v4 fields
document.addField("id", xXAccessAudit.getId());
document.addField("access", xXAccessAudit.getAccessType());
document.addField("enforcer", xXAccessAudit.getAclEnforcer());
@@ -164,12 +272,8 @@ public class DbToSolrMigrationUtil extends BaseLoader {
document.addField("reason", xXAccessAudit.getResultReason());
document.addField("action", xXAccessAudit.getAction());
document.addField("evtTime", DateUtil.getLocalDateForUTCDate(xXAccessAudit.getEventTime()));
- document.addField("seq_num", xXAccessAudit.getSequenceNumber());
- document.addField("event_count", xXAccessAudit.getEventCount());
- document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
- document.addField("tags", xXAccessAudit.getTags());
- //If ID is not set, then we should add it.
SolrInputField idField = document.getField("id");
+ boolean uidIsString = true;
if( idField == null) {
Object uid = null;
if(uidIsString) {
@@ -177,15 +281,24 @@ public class DbToSolrMigrationUtil extends BaseLoader {
}
document.setField("id", uid);
}
+ }
- UpdateResponse response = solrServer.add(document);
- if (response.getStatus() != 0) {
- logger.info("Response=" + response.toString() + ", status= "
- + response.getStatus() + ", event=" + xXAccessAudit.toString());
- throw new Exception("Failed to send audit event ID=" + xXAccessAudit.getId());
- }
+ private void toSolrDocument(XXAccessAuditV5 xXAccessAudit, SolrInputDocument document) {
+ toSolrDocument((XXAccessAuditBase)xXAccessAudit, document);
+ // add v5 fields
+ document.addField("seq_num", xXAccessAudit.getSequenceNumber());
+ document.addField("event_count", xXAccessAudit.getEventCount());
+ document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
}
+ private void toSolrDocument(XXAccessAudit xXAccessAudit,SolrInputDocument document) {
+ toSolrDocument((XXAccessAuditBase)xXAccessAudit, document);
+ // add v6 fields
+ document.addField("seq_num", xXAccessAudit.getSequenceNumber());
+ document.addField("event_count", xXAccessAudit.getEventCount());
+ document.addField("event_dur_ms", xXAccessAudit.getEventDuration());
+ document.addField("tags", xXAccessAudit.getTags());
+ }
private Long readMigrationStatusFile(String aFileName) throws IOException {
Long migratedDbID=0L;
Path path = Paths.get(aFileName);
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index f209bc4..76d3f21 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -1012,7 +1012,13 @@
<named-query name="XXAccessAudit.getMaxIdOfXXAccessAudit">
<query>select max(obj.id) from XXAccessAudit obj</query>
</named-query>
- <named-query name="XXAccessAudit.getByIdRange">
+ <named-query name="XXAccessAuditV4.getByIdRangeV4">
+ <query>select obj from XXAccessAuditV4 obj WHERE obj.id > :idFrom AND obj.id < :idTo</query>
+ </named-query>
+ <named-query name="XXAccessAuditV5.getByIdRangeV5">
+ <query>select obj from XXAccessAuditV5 obj WHERE obj.id > :idFrom AND obj.id < :idTo</query>
+ </named-query>
+ <named-query name="XXAccessAudit.getByIdRangeV6">
<query>select obj from XXAccessAudit obj WHERE obj.id > :idFrom AND obj.id < :idTo</query>
</named-query>
<named-query name="XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime">
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index 0d6679c..aee1c82 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -107,15 +107,6 @@
<name>ranger.mail.listener.enable</name>
<value>false</value>
</property>
-<!-- #Hibernate/JPA settings -->
- <property>
- <name>ranger.jpa.showsql</name>
- <value>false</value>
- </property>
-
-
-
-
<!-- #Second Level Cache -->
<property>
<name>ranger.second_level_cache</name>
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/security-admin/src/main/webapp/META-INF/applicationContext.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/META-INF/applicationContext.xml b/security-admin/src/main/webapp/META-INF/applicationContext.xml
index 17f35a2..0580154 100644
--- a/security-admin/src/main/webapp/META-INF/applicationContext.xml
+++ b/security-admin/src/main/webapp/META-INF/applicationContext.xml
@@ -66,7 +66,7 @@ http://www.springframework.org/schema/util/spring-util.xsd">
<property name="dataSource" ref="loggingDataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
- <property name="databasePlatform" value="${ranger.jpa.audit.jdbc.dialect}" />
+ <property name="databasePlatform" value="${ranger.jpa.jdbc.dialect}" />
<property name="showSql" value="${ranger.jpa.showsql}" />
<property name="generateDdl" value="false" />
</bean>
@@ -174,7 +174,7 @@ http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="loggingDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
- <value>${ranger.jpa.audit.jdbc.driver}</value>
+ <value>${ranger.jpa.jdbc.driver}</value>
</property>
<property name="jdbcUrl">
<value>${ranger.jpa.audit.jdbc.url}</value>
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3595251b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
----------------------------------------------------------------------
diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
index e51d165..4cb8dea 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
@@ -72,6 +72,7 @@ public class TagSyncConfig extends Configuration {
private static final String TAGSYNC_TAGADMIN_KEYSTORE_PROP = "ranger.tagsync.keystore.filename";
private static final String DEFAULT_TAGADMIN_USERNAME = "rangertagsync";
+ private static final String DEFAULT_TAGADMIN_PASSWORD = "rangertagsync";
private static final int DEFAULT_TAGSYNC_TAGADMIN_CONNECTION_CHECK_INTERVAL = 15000;
private static final long DEFAULT_TAGSYNC_REST_SOURCE_DOWNLOAD_INTERVAL = 900000;
@@ -268,6 +269,9 @@ public class TagSyncConfig extends Configuration {
}
}
}
+ if(StringUtils.isBlank(password)){
+ return DEFAULT_TAGADMIN_PASSWORD;
+ }
return null;
}