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 <olegfuk...@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-unsubscr...@dlab.apache.org
For additional commands, e-mail: commits-h...@dlab.apache.org

Reply via email to