/* * 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; /** * Authentication session * */ 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="x_auth_sess") @XmlRootElement public class XXAuthSession extends XXDBBase implements java.io.Serializable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name="X_AUTH_SESS_SEQ",sequenceName="X_AUTH_SESS_SEQ",allocationSize=1) @GeneratedValue(strategy=GenerationType.AUTO,generator="X_AUTH_SESS_SEQ") @Column(name="ID") protected Long id; @Override public void setId(Long id) { this.id=id; } @Override public Long getId() { return id; } /** * Enum values for AuthStatus */ /** * AUTH_STATUS_UNKNOWN is an element of enum AuthStatus. Its value is "AUTH_STATUS_UNKNOWN". */ public static final int AUTH_STATUS_UNKNOWN = 0; /** * AUTH_STATUS_SUCCESS is an element of enum AuthStatus. Its value is "AUTH_STATUS_SUCCESS". */ public static final int AUTH_STATUS_SUCCESS = 1; /** * AUTH_STATUS_WRONG_PASSWORD is an element of enum AuthStatus. Its value is "AUTH_STATUS_WRONG_PASSWORD". */ public static final int AUTH_STATUS_WRONG_PASSWORD = 2; /** * AUTH_STATUS_DISABLED is an element of enum AuthStatus. Its value is "AUTH_STATUS_DISABLED". */ public static final int AUTH_STATUS_DISABLED = 3; /** * AUTH_STATUS_LOCKED is an element of enum AuthStatus. Its value is "AUTH_STATUS_LOCKED". */ public static final int AUTH_STATUS_LOCKED = 4; /** * AUTH_STATUS_PASSWORD_EXPIRED is an element of enum AuthStatus. Its value is "AUTH_STATUS_PASSWORD_EXPIRED". */ public static final int AUTH_STATUS_PASSWORD_EXPIRED = 5; /** * AUTH_STATUS_USER_NOT_FOUND is an element of enum AuthStatus. Its value is "AUTH_STATUS_USER_NOT_FOUND". */ public static final int AUTH_STATUS_USER_NOT_FOUND = 6; /** * Max value for enum AuthStatus_MAX */ public static final int AuthStatus_MAX = 6; /** * Enum values for AuthType */ /** * AUTH_TYPE_UNKNOWN is an element of enum AuthType. Its value is "AUTH_TYPE_UNKNOWN". */ public static final int AUTH_TYPE_UNKNOWN = 0; /** * AUTH_TYPE_PASSWORD is an element of enum AuthType. Its value is "AUTH_TYPE_PASSWORD". */ public static final int AUTH_TYPE_PASSWORD = 1; /** * Max value for enum AuthType_MAX */ public static final int AuthType_MAX = 1; /** * Login ID of the user * <ul> * <li>The maximum length for this attribute is <b>767</b>. * </ul> * */ @Column(name="LOGIN_ID" , nullable=false , length=767) protected String loginId; /** * Id of the user * <ul> * </ul> * */ @Column(name="USER_ID" ) protected Long userId; /** * External session id. Currently spring/http session * <ul> * <li>The maximum length for this attribute is <b>512</b>. * </ul> * */ @Column(name="EXT_SESS_ID" , length=512) protected String extSessionId; /** * Date and time of authentication * <ul> * </ul> * */ @Temporal(TemporalType.TIMESTAMP) @Column(name="AUTH_TIME" , nullable=false ) protected Date authTime = DateUtil.getUTCDate(); /** * Authentication status * <ul> * <li>This attribute is of type enum XXAuthSession::AuthStatus * </ul> * */ @Column(name="AUTH_STATUS" , nullable=false ) protected int authStatus = AUTH_STATUS_UNKNOWN; /** * Authentication type * <ul> * <li>This attribute is of type enum XXAuthSession::AuthType * </ul> * */ @Column(name="AUTH_TYPE" , nullable=false ) protected int authType = AUTH_TYPE_UNKNOWN; /** * Authentication provider * <ul> * <li>This attribute is of type enum XXAuthSession::AuthType * </ul> * */ @Column(name="AUTH_PROVIDER" , nullable=false ) protected int authProvider = AUTH_TYPE_UNKNOWN; /** * Type of the device * <ul> * <li>This attribute is of type enum CommonEnums::DeviceType * </ul> * */ @Column(name="DEVICE_TYPE" , nullable=false ) protected int deviceType = RangerConstants.DEVICE_UNKNOWN; /** * IP where the request came from * <ul> * <li>The maximum length for this attribute is <b>48</b>. * </ul> * */ @Column(name="REQ_IP" , nullable=false , length=48) protected String requestIP; /** * UserAgent of the requesting device * <ul> * <li>The maximum length for this attribute is <b>1024</b>. * </ul> * */ @Column(name="REQ_UA" , length=1024) protected String requestUserAgent; /** * Default constructor. This will set all the attributes to default value. */ public XXAuthSession ( ) { authStatus = AUTH_STATUS_UNKNOWN; authType = AUTH_TYPE_UNKNOWN; authProvider = AUTH_TYPE_UNKNOWN; deviceType = RangerConstants.DEVICE_UNKNOWN; } @Override public int getMyClassType( ) { return AppConstants.CLASS_TYPE_AUTH_SESS; } /** * This method sets the value to the member attribute <b>loginId</b>. * You cannot set null to the attribute. * @param loginId Value to set member attribute <b>loginId</b> */ public void setLoginId( String loginId ) { this.loginId = loginId; } /** * Returns the value for the member attribute <b>loginId</b> * @return String - value of member attribute <b>loginId</b>. */ public String getLoginId( ) { return this.loginId; } /** * This method sets the value to the member attribute <b>userId</b>. * You cannot set null to the attribute. * @param userId Value to set member attribute <b>userId</b> */ public void setUserId( Long userId ) { this.userId = userId; } /** * Returns the value for the member attribute <b>userId</b> * @return Long - value of member attribute <b>userId</b>. */ public Long getUserId( ) { return this.userId; } /** * This method sets the value to the member attribute <b>extSessionId</b>. * You cannot set null to the attribute. * @param extSessionId Value to set member attribute <b>extSessionId</b> */ public void setExtSessionId( String extSessionId ) { this.extSessionId = extSessionId; } /** * Returns the value for the member attribute <b>extSessionId</b> * @return String - value of member attribute <b>extSessionId</b>. */ public String getExtSessionId( ) { return this.extSessionId; } /** * This method sets the value to the member attribute <b>authTime</b>. * You cannot set null to the attribute. * @param authTime Value to set member attribute <b>authTime</b> */ public void setAuthTime( Date authTime ) { this.authTime = authTime; } /** * Returns the value for the member attribute <b>authTime</b> * @return Date - value of member attribute <b>authTime</b>. */ public Date getAuthTime( ) { return this.authTime; } /** * This method sets the value to the member attribute <b>authStatus</b>. * You cannot set null to the attribute. * @param authStatus Value to set member attribute <b>authStatus</b> */ public void setAuthStatus( int authStatus ) { this.authStatus = authStatus; } /** * Returns the value for the member attribute <b>authStatus</b> * @return int - value of member attribute <b>authStatus</b>. */ public int getAuthStatus( ) { return this.authStatus; } /** * This method sets the value to the member attribute <b>authType</b>. * You cannot set null to the attribute. * @param authType Value to set member attribute <b>authType</b> */ public void setAuthType( int authType ) { this.authType = authType; } /** * Returns the value for the member attribute <b>authType</b> * @return int - value of member attribute <b>authType</b>. */ public int getAuthType( ) { return this.authType; } /** * This method sets the value to the member attribute <b>authProvider</b>. * You cannot set null to the attribute. * @param authProvider Value to set member attribute <b>authProvider</b> */ public void setAuthProvider( int authProvider ) { this.authProvider = authProvider; } /** * Returns the value for the member attribute <b>authProvider</b> * @return int - value of member attribute <b>authProvider</b>. */ public int getAuthProvider( ) { return this.authProvider; } /** * This method sets the value to the member attribute <b>deviceType</b>. * You cannot set null to the attribute. * @param deviceType Value to set member attribute <b>deviceType</b> */ public void setDeviceType( int deviceType ) { this.deviceType = deviceType; } /** * Returns the value for the member attribute <b>deviceType</b> * @return int - value of member attribute <b>deviceType</b>. */ public int getDeviceType( ) { return this.deviceType; } /** * This method sets the value to the member attribute <b>requestIP</b>. * You cannot set null to the attribute. * @param requestIP Value to set member attribute <b>requestIP</b> */ public void setRequestIP( String requestIP ) { this.requestIP = requestIP; } /** * Returns the value for the member attribute <b>requestIP</b> * @return String - value of member attribute <b>requestIP</b>. */ public String getRequestIP( ) { return this.requestIP; } /** * This method sets the value to the member attribute <b>requestUserAgent</b>. * You cannot set null to the attribute. * @param requestUserAgent Value to set member attribute <b>requestUserAgent</b> */ public void setRequestUserAgent( String requestUserAgent ) { this.requestUserAgent = requestUserAgent; } /** * Returns the value for the member attribute <b>requestUserAgent</b> * @return String - value of member attribute <b>requestUserAgent</b>. */ public String getRequestUserAgent( ) { return this.requestUserAgent; } /** * This return the bean content in string format * @return formatedStr */ @Override public String toString( ) { String str = "XXAuthSession={"; str += super.toString(); str += "loginId={" + loginId + "} "; str += "userId={" + userId + "} "; str += "authTime={" + authTime + "} "; str += "authStatus={" + authStatus + "} "; str += "authType={" + authType + "} "; str += "authProvider={" + authProvider + "} "; str += "deviceType={" + deviceType + "} "; str += "requestIP={" + requestIP + "} "; str += "requestUserAgent={" + requestUserAgent + "} "; str += "}"; 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; } XXAuthSession other = (XXAuthSession) obj; if ((this.loginId == null && other.loginId != null) || (this.loginId != null && !this.loginId.equals(other.loginId))) { return false; } if ((this.userId == null && other.userId != null) || (this.userId != null && !this.userId.equals(other.userId))) { return false; } if ((this.extSessionId == null && other.extSessionId != null) || (this.extSessionId != null && !this.extSessionId.equals(other.extSessionId))) { return false; } if ((this.authTime == null && other.authTime != null) || (this.authTime != null && !this.authTime.equals(other.authTime))) { return false; } if( this.authStatus != other.authStatus ) return false; if( this.authType != other.authType ) return false; if( this.authProvider != other.authProvider ) return false; if( this.deviceType != other.deviceType ) return false; if ((this.requestIP == null && other.requestIP != null) || (this.requestIP != null && !this.requestIP.equals(other.requestIP))) { return false; } if ((this.requestUserAgent == null && other.requestUserAgent != null) || (this.requestUserAgent != null && !this.requestUserAgent.equals(other.requestUserAgent))) { return false; } return true; } public static String getEnumName(String fieldName ) { if( "authStatus".equals(fieldName) ) { return "CommonEnums.AuthStatus"; } if( "authType".equals(fieldName) ) { return "CommonEnums.AuthType"; } if( "authProvider".equals(fieldName) ) { return "CommonEnums.AuthType"; } if( "deviceType".equals(fieldName) ) { return "CommonEnums.DeviceType"; } //Later TODO //return super.getEnumName(fieldName); return null; } }