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