You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/06/11 14:46:46 UTC

[incubator-dlab] branch audit updated: Added audit for user log in action

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch audit
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/audit by this push:
     new 3a6e8ec  Added audit for user log in action
3a6e8ec is described below

commit 3a6e8ec2110e5d587ea560366286d3e7c46384d6
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Thu Jun 11 17:46:31 2020 +0300

    Added audit for user log in action
---
 .../dlab/backendapi/domain/AuditActionEnum.java    |  3 ++-
 .../backendapi/resources/KeycloakResource.java     | 27 ++++++++++++----------
 .../backendapi/service/SecurityServiceImpl.java    | 15 +++++++++++-
 3 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java
index 96e7f86..16e9e7e 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/AuditActionEnum.java
@@ -27,5 +27,6 @@ public enum AuditActionEnum {
     BUCKET_UPLOAD_OBJECT, BUCKET_DOWNLOAD_OBJECT, BUCKET_DELETE_OBJECT,
     CREATE_IMAGE,
     MANAGE_GIT_ACCOUNT,
-    FOLLOW_NOTEBOOK_LINK
+    FOLLOW_NOTEBOOK_LINK,
+    LOG_IN
 }
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
index 818dfe1..e7f8836 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
@@ -13,7 +13,12 @@ import com.google.inject.Inject;
 import io.dropwizard.auth.Auth;
 import org.keycloak.representations.AccessTokenResponse;
 
-import javax.ws.rs.*;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.net.URI;
@@ -45,17 +50,15 @@ public class KeycloakResource {
 		this.securityService = securityService;
 		this.keycloakService = keycloakService;
 
-		loginUri =
-				format(LOGIN_URI_FORMAT,
-						keycloakConfiguration.getAuthServerUrl(),
-						keycloakConfiguration.getRealm(),
-						keycloakConfiguration.getResource(),
-						redirectUri);
-		logoutUri =
-				format(KEYCLOAK_LOGOUT_URI_FORMAT,
-						keycloakConfiguration.getAuthServerUrl(),
-						keycloakConfiguration.getRealm(),
-						redirectUri);
+		loginUri = format(LOGIN_URI_FORMAT,
+				keycloakConfiguration.getAuthServerUrl(),
+				keycloakConfiguration.getRealm(),
+				keycloakConfiguration.getResource(),
+				redirectUri);
+		logoutUri = format(KEYCLOAK_LOGOUT_URI_FORMAT,
+				keycloakConfiguration.getAuthServerUrl(),
+				keycloakConfiguration.getRealm(),
+				redirectUri);
 	}
 
 	@GET
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/SecurityServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/SecurityServiceImpl.java
index b43128d..b405db8 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/SecurityServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/SecurityServiceImpl.java
@@ -2,6 +2,8 @@ package com.epam.dlab.backendapi.service;
 
 import com.epam.dlab.auth.UserInfo;
 import com.epam.dlab.backendapi.dao.SecurityDAO;
+import com.epam.dlab.backendapi.domain.AuditActionEnum;
+import com.epam.dlab.backendapi.domain.AuditDTO;
 import com.epam.dlab.backendapi.util.KeycloakUtil;
 import com.epam.dlab.exceptions.DlabException;
 import com.google.inject.Inject;
@@ -10,11 +12,13 @@ import org.keycloak.representations.AccessTokenResponse;
 public class SecurityServiceImpl implements SecurityService {
 	private final KeycloakService keycloakService;
 	private final SecurityDAO securityDAO;
+	private final AuditService auditService;
 
 	@Inject
-	public SecurityServiceImpl(KeycloakService keycloakService, SecurityDAO securityDAO) {
+	public SecurityServiceImpl(KeycloakService keycloakService, SecurityDAO securityDAO, AuditService auditService) {
 		this.keycloakService = keycloakService;
 		this.securityDAO = securityDAO;
+		this.auditService = auditService;
 	}
 
 	@Override
@@ -24,6 +28,7 @@ public class SecurityServiceImpl implements SecurityService {
 		securityDAO.saveUser(username, token);
 		UserInfo userInfo = new UserInfo(username, token.getToken());
 		userInfo.setRefreshToken(token.getRefreshToken());
+		saveLogInAudit(username);
 		return userInfo;
 	}
 
@@ -42,4 +47,12 @@ public class SecurityServiceImpl implements SecurityService {
 		AccessTokenResponse accessTokenResponse = keycloakService.generateServiceAccountToken();
 		return new UserInfo(username, accessTokenResponse.getToken());
 	}
+
+	private void saveLogInAudit(String username) {
+		AuditDTO auditDTO = AuditDTO.builder()
+				.user(username)
+				.action(AuditActionEnum.LOG_IN)
+				.build();
+		auditService.save(auditDTO);
+	}
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org