From 098a0dd463dccce713476dfaa12d8e42bff59b51 Mon Sep 17 00:00:00 2001 From: GeorgeC Date: Thu, 25 Jan 2024 18:44:00 -0500 Subject: [PATCH] Improve logging in OktaOAuthAuthenticationService Extended the logging capability in OktaOAuthAuthenticationService for user roles and metadata. This assists in diagnosing login issues by logging whether a user is assigned the fence_open_access role and whether their metadata is being added or already exists. --- .../service/auth/OktaOAuthAuthenticationService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/auth/OktaOAuthAuthenticationService.java b/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/auth/OktaOAuthAuthenticationService.java index 82673efb3..9d815c1c4 100644 --- a/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/auth/OktaOAuthAuthenticationService.java +++ b/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/auth/OktaOAuthAuthenticationService.java @@ -123,13 +123,19 @@ private User loadUser(JsonNode introspectResponse) { // All users that login through OKTA should have the fence_open_access role, or they will not be able to interact with the UI Role fenceOpenAccessRole = roleRepository.getUniqueResultByColumn("name", FENCEAuthenticationService.fence_open_access_role_name); + + // print user roles for debugging + logger.info("User roles: " + user.getRoles().toString()); + if (!user.getRoles().contains(fenceOpenAccessRole)) { + logger.info("Adding fence_open_access role to user: " + user.getUuid()); user.getRoles().add(fenceOpenAccessRole); userRepository.persist(user); } // Add metadata to the user upon logging in if it doesn't exist - if (user.getGeneralMetadata() != null && user.getGeneralMetadata().isEmpty()) { + if (user.getGeneralMetadata().isEmpty()) { + logger.info("Adding metadata to user: " + user.getUuid()); // JsonNode is immutable, so we need to convert it to a ObjectNode ObjectNode objectNode = JAXRSConfiguration.objectMapper.createObjectNode(); objectNode.set("email", introspectResponse.get("sub")); @@ -143,6 +149,8 @@ private User loadUser(JsonNode introspectResponse) { user.setGeneralMetadata(objectNode.asText()); userRepository.persist(user); + } else { + logger.info("User already has metadata: " + user.getUuid()); } return user;