Sync Integ to Master
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / auditing / AuthEvent.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.resources.data.auditing;
22
23 import java.text.SimpleDateFormat;
24 import java.util.*;
25
26 import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData;
27 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
28
29 import com.datastax.driver.core.utils.UUIDs;
30 import com.datastax.driver.mapping.annotations.ClusteringColumn;
31 import com.datastax.driver.mapping.annotations.Column;
32 import com.datastax.driver.mapping.annotations.PartitionKey;
33 import com.datastax.driver.mapping.annotations.Table;
34
35 @Table(keyspace = "sdcaudit", name = AuditingTypesConstants.AUTH_EVENT_TYPE)
36 public class AuthEvent extends AuditingGenericEvent {
37
38         private static String AUTH_EVENT_TEMPLATE = "action=\"%s\" timestamp=\"%s\" "
39                         + "URL=\"%s\" USER=\"%s\" AUTH_STATUS=\"%s\" " + "REALM=\"%s\" status=\"%s\" desc=\"%s\"";
40
41         @PartitionKey
42         protected UUID timebaseduuid;
43
44         @ClusteringColumn
45         protected Date timestamp1;
46
47         @Column
48         private String url;
49         @Column
50         private String user;
51
52         @Column(name = "auth_status")
53         private String authStatus;
54
55         @Column
56         private String realm;
57         @Column
58         protected String action;
59         @Column
60         protected String status;
61
62         @Column(name = "description")
63         protected String desc;
64
65         @Column(name = "request_id")
66         protected String requestId;
67
68         public AuthEvent() {
69                 super();
70                 timestamp1 = new Date();
71                 timebaseduuid = UUIDs.timeBased();
72         }
73
74         public String getUrl() {
75                 return url;
76         }
77
78         public void setUrl(String url) {
79                 this.url = url;
80         }
81
82         public String getUser() {
83                 return user;
84         }
85
86         public void setUser(String user) {
87                 this.user = user;
88         }
89
90         public String getAuthStatus() {
91                 return authStatus;
92         }
93
94         public void setAuthStatus(String authStatus) {
95                 this.authStatus = authStatus;
96         }
97
98         public String getRealm() {
99                 return realm;
100         }
101
102         public void setRealm(String realm) {
103                 this.realm = realm;
104         }
105
106         public UUID getTimebaseduuid() {
107                 return timebaseduuid;
108         }
109
110         public void setTimebaseduuid(UUID timebaseduuid) {
111                 this.timebaseduuid = timebaseduuid;
112         }
113
114         public Date getTimestamp1() {
115                 return timestamp1;
116         }
117
118         public void setTimestamp1(Date timestamp1) {
119                 this.timestamp1 = timestamp1;
120         }
121
122         public String getAction() {
123                 return action;
124         }
125
126         public void setAction(String action) {
127                 this.action = action;
128         }
129
130         public String getStatus() {
131                 return status;
132         }
133
134         public void setStatus(String status) {
135                 this.status = status;
136         }
137
138         public String getDesc() {
139                 return desc;
140         }
141
142         public void setDesc(String desc) {
143                 this.desc = desc;
144         }
145
146         public String getRequestId() {
147                 return requestId;
148         }
149
150         public void setRequestId(String requestId) {
151                 this.requestId = requestId;
152         }
153
154         public AuthEvent(Map<AuditingFieldsKeysEnum, Object> auditingFields) {
155                 this();
156                 Object value;
157                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_AUTH_URL);
158                 if (value != null) {
159                         setUrl((String) value);
160                 }
161                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_AUTH_USER);
162                 if (value != null) {
163                         setUser((String) value);
164                 }
165                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_AUTH_STATUS);
166                 if (value != null) {
167                         setAuthStatus((String) value);
168                 }
169                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_AUTH_REALM);
170                 if (value != null) {
171                         setRealm((String) value);
172                 }
173                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_ACTION);
174                 if (value != null) {
175                         setAction((String) value);
176                 }
177                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DESC);
178                 if (value != null) {
179                         setDesc((String) value);
180                 }
181                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID);
182                 if (value != null) {
183                         setRequestId((String) value);
184                 }
185                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_STATUS);
186                 if (value != null) {
187                         setStatus((String) value);
188                 }
189
190         }
191
192         public AuthEvent(String action, CommonAuditData commonAuditData, String user, String authUrl, String realm, String authStatus) {
193                 this();
194         this.action = action;
195         this.requestId = commonAuditData.getRequestId();
196                 this.desc = commonAuditData.getDescription();
197                 this.status = commonAuditData.getStatus();
198                 this.authStatus = authStatus;
199                 this.url = authUrl;
200                 this.realm = realm;
201                 this.user = user;
202         }
203
204         @Override
205         public void fillFields() {
206                 fields.put(AuditingFieldsKeysEnum.AUDIT_AUTH_URL.getDisplayName(), getUrl());
207
208                 fields.put(AuditingFieldsKeysEnum.AUDIT_AUTH_USER.getDisplayName(), getUser());
209                 fields.put(AuditingFieldsKeysEnum.AUDIT_AUTH_STATUS.getDisplayName(), getAuthStatus());
210                 fields.put(AuditingFieldsKeysEnum.AUDIT_AUTH_REALM.getDisplayName(), getRealm());
211                 fields.put(AuditingFieldsKeysEnum.AUDIT_ACTION.getDisplayName(), getAction());
212                 fields.put(AuditingFieldsKeysEnum.AUDIT_STATUS.getDisplayName(), getStatus());
213                 fields.put(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID.getDisplayName(), getRequestId());
214                 fields.put(AuditingFieldsKeysEnum.AUDIT_DESC.getDisplayName(), getDesc());
215                 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern);
216                 simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
217                 fields.put(AuditingFieldsKeysEnum.AUDIT_TIMESTAMP.getDisplayName(), simpleDateFormat.format(timestamp1));
218         }
219 }