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