diff --git a/WebContent/WEB-INF/auditpoints.dat b/WebContent/WEB-INF/auditpoints.dat index 9ba8e9e..8eab19e 100644 --- a/WebContent/WEB-INF/auditpoints.dat +++ b/WebContent/WEB-INF/auditpoints.dat @@ -17,3 +17,4 @@ PortalPropertyController_포탈 프로퍼티 관리_APIGW_UPDATE PortalUserTermsManController_약관동의 이력_APIGW_UNMASK MessageRequestManController_메세지발송내역_APIGW_UPDATE_STATUS PortalInquiryManController_Q&A문의관리_APIGW_VISIBILITY +PortalMenuManController_포탈메뉴관리_APIGW_INSERT,UPDATE,DELETE,TRANSACTION_PLACEMENT,INITIALIZE,TRANSACTION_RELOAD diff --git a/WebContent/jsp/onl/apim/portalmenu/portalMenuMan.jsp b/WebContent/jsp/onl/apim/portalmenu/portalMenuMan.jsp new file mode 100644 index 0000000..b1cc2cc --- /dev/null +++ b/WebContent/jsp/onl/apim/portalmenu/portalMenuMan.jsp @@ -0,0 +1,550 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" %> +<%@ page import="java.io.*" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> +<% + response.setHeader("Pragma", "No-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Expires", "0"); +%> + +
+호출 URL 은 PTL_PROPERTY {@code Portal / portal.internal.menu-reload-url} 로 관리한다 + * (기본 {@code http://127.0.0.1:39130/internal/menu/reload}). + * portal 측은 {@code menu.internal.allow-ips} 허용 IP 목록으로 요청을 검증한다. + * 오류는 결과 Map 으로 감싸 화면에 사유를 표시한다 — 예외를 전파하지 않는다.
+ */ +@Component +public class PortalMenuCacheClient { + + private static final Logger logger = Logger.getLogger(PortalMenuCacheClient.class); + + static final String PROP_GROUP = "Portal"; + static final String PROP_RELOAD_URL = "portal.internal.menu-reload-url"; + static final String DEFAULT_RELOAD_URL = "http://127.0.0.1:39130/internal/menu/reload"; + + private final PortalPropertyService portalPropertyService; + private final RestTemplate restTemplate; + + @Autowired + public PortalMenuCacheClient(PortalPropertyService portalPropertyService, RestTemplate restTemplate) { + this.portalPropertyService = portalPropertyService; + this.restTemplate = restTemplate; + } + + /** + * @return {@code {success, message, itemCount?, reloadedAt?}} + */ + public Map