fix(backoffice): remove legacy catalog from Smilegate home

This commit is contained in:
devmrko
2026-07-22 13:36:54 +09:00
parent ea5a116203
commit 0b55e5b16b
2 changed files with 19 additions and 37 deletions

View File

@@ -1,8 +1,6 @@
package com.cloudhandson.vpdbackoffice.config; package com.cloudhandson.vpdbackoffice.config;
import com.cloudhandson.vpdbackoffice.service.PermissionService; import com.cloudhandson.vpdbackoffice.service.PermissionService;
import com.cloudhandson.vpdbackoffice.service.ProtectedObjectService;
import com.cloudhandson.vpdbackoffice.service.VpdPolicyService;
import java.sql.Connection; import java.sql.Connection;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -16,20 +14,14 @@ public class DbPoolWarmup {
private static final Logger log = LoggerFactory.getLogger(DbPoolWarmup.class); private static final Logger log = LoggerFactory.getLogger(DbPoolWarmup.class);
private final DataSource dataSource; private final DataSource dataSource;
private final ProtectedObjectService protectedObjectService;
private final PermissionService permissionService; private final PermissionService permissionService;
private final VpdPolicyService vpdPolicyService;
public DbPoolWarmup( public DbPoolWarmup(
DataSource dataSource, DataSource dataSource,
ProtectedObjectService protectedObjectService, PermissionService permissionService
PermissionService permissionService,
VpdPolicyService vpdPolicyService
) { ) {
this.dataSource = dataSource; this.dataSource = dataSource;
this.protectedObjectService = protectedObjectService;
this.permissionService = permissionService; this.permissionService = permissionService;
this.vpdPolicyService = vpdPolicyService;
} }
@EventListener(ApplicationReadyEvent.class) @EventListener(ApplicationReadyEvent.class)
@@ -44,13 +36,10 @@ public class DbPoolWarmup {
private void warmupBackofficeCatalog() { private void warmupBackofficeCatalog() {
long started = System.nanoTime(); long started = System.nanoTime();
var objects = protectedObjectService.findEnabled(); // Only warm the Smilegate identity catalog. VPD catalog objects are not
objects.forEach(object -> protectedObjectService.findColumns(object.objectId())); // part of this PoC and may deliberately be absent from the ADB schema.
protectedObjectService.findDatabaseObjects();
permissionService.findRoles(); permissionService.findRoles();
permissionService.findPermissionViews(); permissionService.findPermissionViews();
vpdPolicyService.findVpdTargets();
vpdPolicyService.formOptions();
log.info("Backoffice DB catalog cache warmed up in {}ms", (System.nanoTime() - started) / 1_000_000); log.info("Backoffice DB catalog cache warmed up in {}ms", (System.nanoTime() - started) / 1_000_000);
} }
} }

View File

@@ -1,10 +1,9 @@
package com.cloudhandson.vpdbackoffice.web; 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.PermissionService;
import com.cloudhandson.vpdbackoffice.service.ProtectedObjectService; import com.cloudhandson.vpdbackoffice.service.UserService;
import java.util.List; import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -12,35 +11,29 @@ import org.springframework.web.bind.annotation.GetMapping;
@Controller @Controller
public class DashboardController { public class DashboardController {
private final ProtectedObjectService protectedObjectService; private final UserService userService;
private final GroupService groupService;
private final PermissionService permissionService; private final PermissionService permissionService;
private final BearerTokenService bearerTokenService;
public DashboardController( public DashboardController(
ProtectedObjectService protectedObjectService, UserService userService,
PermissionService permissionService, GroupService groupService,
BearerTokenService bearerTokenService PermissionService permissionService
) { ) {
this.protectedObjectService = protectedObjectService; this.userService = userService;
this.groupService = groupService;
this.permissionService = permissionService; this.permissionService = permissionService;
this.bearerTokenService = bearerTokenService;
} }
@GetMapping("/") @GetMapping("/")
public String dashboard(Model model) { public String dashboard(Model model) {
try { // The Smilegate PoC home is an identity-administration landing page.
model.addAttribute("objects", protectedObjectService.findEnabled()); // It intentionally does not query legacy CB_* VPD catalog objects.
model.addAttribute("roles", permissionService.findRoles()); model.addAttribute("users", userService.findAll());
model.addAttribute("tokens", bearerTokenService.findAll()); model.addAttribute("groups", groupService.findAll());
} catch (DataAccessException e) { model.addAttribute("objects", List.of());
RuntimeErrorMessage error = RuntimeErrorMessages.dataAccess(e); model.addAttribute("roles", permissionService.findRoles());
model.addAttribute("objects", List.of()); model.addAttribute("tokens", 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());
}
return "dashboard"; return "dashboard";
} }
} }