diff --git a/src/main/java/com/cloudhandson/vpdbackoffice/config/DbPoolWarmup.java b/src/main/java/com/cloudhandson/vpdbackoffice/config/DbPoolWarmup.java index 85103fd..db20d4f 100644 --- a/src/main/java/com/cloudhandson/vpdbackoffice/config/DbPoolWarmup.java +++ b/src/main/java/com/cloudhandson/vpdbackoffice/config/DbPoolWarmup.java @@ -1,8 +1,6 @@ package com.cloudhandson.vpdbackoffice.config; import com.cloudhandson.vpdbackoffice.service.PermissionService; -import com.cloudhandson.vpdbackoffice.service.ProtectedObjectService; -import com.cloudhandson.vpdbackoffice.service.VpdPolicyService; import java.sql.Connection; import javax.sql.DataSource; import org.slf4j.Logger; @@ -16,20 +14,14 @@ public class DbPoolWarmup { private static final Logger log = LoggerFactory.getLogger(DbPoolWarmup.class); private final DataSource dataSource; - private final ProtectedObjectService protectedObjectService; private final PermissionService permissionService; - private final VpdPolicyService vpdPolicyService; public DbPoolWarmup( DataSource dataSource, - ProtectedObjectService protectedObjectService, - PermissionService permissionService, - VpdPolicyService vpdPolicyService + PermissionService permissionService ) { this.dataSource = dataSource; - this.protectedObjectService = protectedObjectService; this.permissionService = permissionService; - this.vpdPolicyService = vpdPolicyService; } @EventListener(ApplicationReadyEvent.class) @@ -44,13 +36,10 @@ public class DbPoolWarmup { private void warmupBackofficeCatalog() { long started = System.nanoTime(); - var objects = protectedObjectService.findEnabled(); - objects.forEach(object -> protectedObjectService.findColumns(object.objectId())); - protectedObjectService.findDatabaseObjects(); + // Only warm the Smilegate identity catalog. VPD catalog objects are not + // part of this PoC and may deliberately be absent from the ADB schema. permissionService.findRoles(); permissionService.findPermissionViews(); - vpdPolicyService.findVpdTargets(); - vpdPolicyService.formOptions(); log.info("Backoffice DB catalog cache warmed up in {}ms", (System.nanoTime() - started) / 1_000_000); } } diff --git a/src/main/java/com/cloudhandson/vpdbackoffice/web/DashboardController.java b/src/main/java/com/cloudhandson/vpdbackoffice/web/DashboardController.java index be1000b..8f00887 100644 --- a/src/main/java/com/cloudhandson/vpdbackoffice/web/DashboardController.java +++ b/src/main/java/com/cloudhandson/vpdbackoffice/web/DashboardController.java @@ -1,10 +1,9 @@ package com.cloudhandson.vpdbackoffice.web; -import com.cloudhandson.vpdbackoffice.service.BearerTokenService; +import com.cloudhandson.vpdbackoffice.service.GroupService; import com.cloudhandson.vpdbackoffice.service.PermissionService; -import com.cloudhandson.vpdbackoffice.service.ProtectedObjectService; +import com.cloudhandson.vpdbackoffice.service.UserService; import java.util.List; -import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -12,35 +11,29 @@ import org.springframework.web.bind.annotation.GetMapping; @Controller public class DashboardController { - private final ProtectedObjectService protectedObjectService; + private final UserService userService; + private final GroupService groupService; private final PermissionService permissionService; - private final BearerTokenService bearerTokenService; public DashboardController( - ProtectedObjectService protectedObjectService, - PermissionService permissionService, - BearerTokenService bearerTokenService + UserService userService, + GroupService groupService, + PermissionService permissionService ) { - this.protectedObjectService = protectedObjectService; + this.userService = userService; + this.groupService = groupService; this.permissionService = permissionService; - this.bearerTokenService = bearerTokenService; } @GetMapping("/") public String dashboard(Model model) { - try { - model.addAttribute("objects", protectedObjectService.findEnabled()); - model.addAttribute("roles", permissionService.findRoles()); - model.addAttribute("tokens", bearerTokenService.findAll()); - } catch (DataAccessException e) { - RuntimeErrorMessage error = RuntimeErrorMessages.dataAccess(e); - model.addAttribute("objects", List.of()); - model.addAttribute("roles", List.of()); - model.addAttribute("tokens", List.of()); - model.addAttribute("runtimeErrorTitle", error.title()); - model.addAttribute("runtimeErrorMessage", error.message()); - model.addAttribute("showSupportCommand", error.showSupportCommand()); - } + // The Smilegate PoC home is an identity-administration landing page. + // It intentionally does not query legacy CB_* VPD catalog objects. + model.addAttribute("users", userService.findAll()); + model.addAttribute("groups", groupService.findAll()); + model.addAttribute("objects", List.of()); + model.addAttribute("roles", permissionService.findRoles()); + model.addAttribute("tokens", List.of()); return "dashboard"; } }