Merge remote-tracking branch 'origin/jenkins_with_weblogic' of C:/eactive/bundle/bundles/20251230/eapim-admin_incremental_2025-12-01.bundle into jenkins_with_weblogic
This commit is contained in:
@@ -151,6 +151,10 @@ function saveApiGridData(scopeId, returnUrl) {
|
|||||||
type : "POST",
|
type : "POST",
|
||||||
url:mapping_url,
|
url:mapping_url,
|
||||||
data: postData,
|
data: postData,
|
||||||
|
beforeSend: function() {
|
||||||
|
$("[id^='btn_']").prop("disabled", true);
|
||||||
|
$("#btn_modify").text("처리중 . . . . .");
|
||||||
|
},
|
||||||
success:function(args){
|
success:function(args){
|
||||||
alert("저장 되었습니다.");
|
alert("저장 되었습니다.");
|
||||||
|
|
||||||
@@ -158,7 +162,11 @@ function saveApiGridData(scopeId, returnUrl) {
|
|||||||
},
|
},
|
||||||
error:function(e){
|
error:function(e){
|
||||||
alert(e.responseText);
|
alert(e.responseText);
|
||||||
}
|
},
|
||||||
|
complete: function() {
|
||||||
|
$("[id^='btn_']").prop("disabled", false);
|
||||||
|
$("#btn_modify").text("수정");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +195,11 @@ $(document).ready(function() {
|
|||||||
success:function(args){
|
success:function(args){
|
||||||
alert("SCOPE 정보가 저장 되었습니다. 이어서 API 리스트를 저장합니다.");
|
alert("SCOPE 정보가 저장 되었습니다. 이어서 API 리스트를 저장합니다.");
|
||||||
|
|
||||||
|
if(!isDetail) { // INSERT 일 경우 ScopeId를 업데이트
|
||||||
|
key = $('input[name=scopeId]').val();
|
||||||
|
}
|
||||||
saveApiGridData(key, returnUrl); // API LIST 저장.
|
saveApiGridData(key, returnUrl); // API LIST 저장.
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
error:function(e){
|
error:function(e){
|
||||||
|
|||||||
@@ -717,6 +717,8 @@
|
|||||||
|
|
||||||
reloadSourceTargetGrid('${param.cnvsnName}');
|
reloadSourceTargetGrid('${param.cnvsnName}');
|
||||||
reloadCnvsnDesc();
|
reloadCnvsnDesc();
|
||||||
|
|
||||||
|
setSearchable("functionCombo");
|
||||||
},
|
},
|
||||||
error:function(e){
|
error:function(e){
|
||||||
alert(e.responseText);
|
alert(e.responseText);
|
||||||
|
|||||||
@@ -236,10 +236,16 @@
|
|||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchEaiSvcName" value="${param.searchEaiSvcName}">
|
<input type="text" name="searchEaiSvcName" value="${param.searchEaiSvcName}">
|
||||||
</td>
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<th style="width:180px;">API 명</th>
|
<th style="width:180px;">API 명</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchEaiSvcDesc" value="${param.searchEaiSvcDesc}">
|
<input type="text" name="searchEaiSvcDesc" value="${param.searchEaiSvcDesc}">
|
||||||
</td>
|
</td>
|
||||||
|
<th style="width:180px;">API FULL PATH</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="searchApiFullPath" value="${param.searchApiFullPath}">
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -2084,7 +2084,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div><!-- end right_box -->
|
</div><!-- end right_box -->
|
||||||
</body>
|
</body>
|
||||||
</html>loneInterfaceButton">복제</button>
|
</html>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.eactive.eai.rms.common.login;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebListener;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
import javax.servlet.http.HttpSessionEvent;
|
||||||
|
import javax.servlet.http.HttpSessionListener;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
@WebListener
|
||||||
|
public class SessionDestructionListener implements HttpSessionListener {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(SessionDestructionListener.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sessionCreated(HttpSessionEvent se) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 세션 타임아웃 등으로 소멸 시 세션정보 삭제
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void sessionDestroyed(HttpSessionEvent se) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
HttpSession session = se.getSession();
|
||||||
|
|
||||||
|
String userId = (String) session.getAttribute("userId");
|
||||||
|
|
||||||
|
// 로그인 한 사용자의 세션정보 정리
|
||||||
|
if (userId != null) {
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("[SessionListener] 세션만료 감지. 사용자 제거: " + userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
SessionManager.removeUserSession(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
|
||||||
|
logger.error("[SessionListener] 세션 정리 중 오류 발생", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+13
-3
@@ -1,21 +1,31 @@
|
|||||||
package com.eactive.eai.rms.data.entity.onl.authserver;
|
package com.eactive.eai.rms.data.entity.onl.authserver;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import javax.persistence.EntityManager;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import javax.persistence.PersistenceContext;
|
||||||
|
|
||||||
import com.eactive.eai.data.entity.onl.authserver.QScopeEntity;
|
import com.eactive.eai.data.entity.onl.authserver.QScopeEntity;
|
||||||
import com.eactive.eai.data.entity.onl.authserver.ScopeEntity;
|
import com.eactive.eai.data.entity.onl.authserver.ScopeEntity;
|
||||||
import com.eactive.eai.data.entity.onl.authserver.ScopeEntityId;
|
import com.eactive.eai.data.entity.onl.authserver.ScopeEntityId;
|
||||||
import com.eactive.eai.data.jpa.AbstractDataService;
|
import com.eactive.eai.data.jpa.AbstractDataService;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional
|
@Transactional
|
||||||
public class ScopeEntityService extends AbstractDataService<ScopeEntity, ScopeEntityId, ScopeEntityEMSRepository> {
|
public class ScopeEntityService extends AbstractDataService<ScopeEntity, ScopeEntityId, ScopeEntityEMSRepository> {
|
||||||
|
|
||||||
|
@PersistenceContext
|
||||||
|
private EntityManager entityManager; // AbstractDataService 의 entityManager가 private이라 접근 불가하여 별도 주입
|
||||||
|
|
||||||
public void deleteByIdScopeId(String scopeId) {
|
public void deleteByIdScopeId(String scopeId) {
|
||||||
getJPAQueryFactory().delete(QScopeEntity.scopeEntity)
|
getJPAQueryFactory().delete(QScopeEntity.scopeEntity)
|
||||||
.where(QScopeEntity.scopeEntity.id.scopeid.eq(scopeId))
|
.where(QScopeEntity.scopeEntity.id.scopeid.eq(scopeId))
|
||||||
.execute();
|
.execute();
|
||||||
|
|
||||||
|
// 동일 트랜잭션 내에서 같은 ID로 재저장 시 충돌(EntityExistsException)을 방지
|
||||||
|
entityManager.flush();
|
||||||
|
entityManager.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -310,8 +310,6 @@ public class EAIMessageService extends AbstractDataService<EAIMessageEntity, Str
|
|||||||
.on(qScopeEntity.id.scopeid.eq(qScopeInfo.scopeId))
|
.on(qScopeEntity.id.scopeid.eq(qScopeInfo.scopeId))
|
||||||
.where(predicate)
|
.where(predicate)
|
||||||
.orderBy(qScopeEntity.id.bzwksvckeyname.asc())
|
.orderBy(qScopeEntity.id.bzwksvckeyname.asc())
|
||||||
.offset(pageable.getOffset())
|
|
||||||
.limit(pageable.getPageSize())
|
|
||||||
.fetch();
|
.fetch();
|
||||||
|
|
||||||
return new PageImpl<>(result, pageable, result.size());
|
return new PageImpl<>(result, pageable, result.size());
|
||||||
@@ -320,7 +318,7 @@ public class EAIMessageService extends AbstractDataService<EAIMessageEntity, Str
|
|||||||
private BooleanExpression booleanPredicate(QEAIMessageEntity qEaiMessageEntity, QScopeEntity qScopeEntity,
|
private BooleanExpression booleanPredicate(QEAIMessageEntity qEaiMessageEntity, QScopeEntity qScopeEntity,
|
||||||
QScopeInfo qScopeInfo, ApiScopeSearch apiScopeSearch) {
|
QScopeInfo qScopeInfo, ApiScopeSearch apiScopeSearch) {
|
||||||
|
|
||||||
BooleanExpression predicate = qScopeEntity.id.scopeid.containsIgnoreCase(apiScopeSearch.getSearchScopeId());
|
BooleanExpression predicate = qScopeEntity.id.scopeid.equalsIgnoreCase(apiScopeSearch.getSearchScopeId());
|
||||||
// BooleanExpression predicate = qEaiMessageEntity.eaisvcdesc.containsIgnoreCase(apiScopeSearch.getSearchEaiSvcDesc());
|
// BooleanExpression predicate = qEaiMessageEntity.eaisvcdesc.containsIgnoreCase(apiScopeSearch.getSearchEaiSvcDesc());
|
||||||
|
|
||||||
// if(StringUtils.isNotBlank(apiScopeSearch.getSearchBzwkSvcKeyName())) {
|
// if(StringUtils.isNotBlank(apiScopeSearch.getSearchBzwkSvcKeyName())) {
|
||||||
|
|||||||
@@ -7,4 +7,5 @@ public class ApiGroupUISearch {
|
|||||||
private String searchGroupName;
|
private String searchGroupName;
|
||||||
private String searchGroupDesc;
|
private String searchGroupDesc;
|
||||||
private String searchDisplayYn;
|
private String searchDisplayYn;
|
||||||
|
private String searchApiFullPath;
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-14
@@ -7,6 +7,14 @@ import java.util.Map;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.eactive.eai.agent.command.CommonCommand;
|
||||||
|
import com.eactive.eai.rms.common.base.OnlBaseAnnotationController;
|
||||||
|
import com.eactive.eai.rms.common.combo.ComboService;
|
||||||
|
import com.eactive.eai.rms.common.combo.ComboVo;
|
||||||
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@@ -16,14 +24,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import com.eactive.eai.agent.command.CommonCommand;
|
|
||||||
import com.eactive.eai.rms.common.base.OnlBaseAnnotationController;
|
|
||||||
import com.eactive.eai.rms.common.combo.ComboService;
|
|
||||||
import com.eactive.eai.rms.common.combo.ComboVo;
|
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class InflowGroupControlManController extends OnlBaseAnnotationController {
|
public class InflowGroupControlManController extends OnlBaseAnnotationController {
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController
|
|||||||
* 그룹 저장 (INSERT)
|
* 그룹 저장 (INSERT)
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=INSERT")
|
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=INSERT")
|
||||||
public String insert(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui,
|
public ResponseEntity<Void> insert(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui,
|
||||||
@RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception {
|
@RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception {
|
||||||
parseInterfaceList(ui, interfaceListJson);
|
parseInterfaceList(ui, interfaceListJson);
|
||||||
String modifiedBy = getSessionUserId(request);
|
String modifiedBy = getSessionUserId(request);
|
||||||
@@ -88,14 +88,14 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController
|
|||||||
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand",
|
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand",
|
||||||
ui.getGroupId());
|
ui.getGroupId());
|
||||||
agentUtilService.broadcast(command);
|
agentUtilService.broadcast(command);
|
||||||
return null;
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 그룹 저장 (UPDATE)
|
* 그룹 저장 (UPDATE)
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=UPDATE")
|
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=UPDATE")
|
||||||
public String update(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui,
|
public ResponseEntity<Void> update(HttpServletRequest request, HttpServletResponse response, InflowGroupControlManUI ui,
|
||||||
@RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception {
|
@RequestParam(value = "interfaceListJson", required = false) String interfaceListJson) throws Exception {
|
||||||
parseInterfaceList(ui, interfaceListJson);
|
parseInterfaceList(ui, interfaceListJson);
|
||||||
String modifiedBy = getSessionUserId(request);
|
String modifiedBy = getSessionUserId(request);
|
||||||
@@ -105,21 +105,21 @@ public class InflowGroupControlManController extends OnlBaseAnnotationController
|
|||||||
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand",
|
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.ReloadInflowGroupControlCommand",
|
||||||
ui.getGroupId());
|
ui.getGroupId());
|
||||||
agentUtilService.broadcast(command);
|
agentUtilService.broadcast(command);
|
||||||
return null;
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 그룹 삭제
|
* 그룹 삭제
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=DELETE")
|
@RequestMapping(value = "/onl/admin/inflow/inflowGroupControlMan.json", params = "cmd=DELETE")
|
||||||
public String delete(HttpServletRequest request, HttpServletResponse response, String groupId) throws Exception {
|
public ResponseEntity<Void> delete(HttpServletRequest request, HttpServletResponse response, String groupId) throws Exception {
|
||||||
service.deleteGroup(groupId);
|
service.deleteGroup(groupId);
|
||||||
|
|
||||||
// Agent Command 전송
|
// Agent Command 전송
|
||||||
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.RemoveInflowGroupControlCommand",
|
CommonCommand command = new CommonCommand("com.eactive.eai.agent.inflow.RemoveInflowGroupControlCommand",
|
||||||
groupId);
|
groupId);
|
||||||
agentUtilService.broadcast(command);
|
agentUtilService.broadcast(command);
|
||||||
return null;
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -171,7 +171,8 @@ public class Transform2Service extends BaseService {
|
|||||||
|
|
||||||
private String genConversionSourceItems(String srcLayoutName, String cnvsncmdname) {
|
private String genConversionSourceItems(String srcLayoutName, String cnvsncmdname) {
|
||||||
|
|
||||||
Pattern pattern = Pattern.compile(srcLayoutName + "(\\w|\\[|\\]|\\*|\\.|-|:)*");
|
// \uAC00-\uD7A3 : 한글 전체 ('가' ~ '힣')
|
||||||
|
Pattern pattern = Pattern.compile(srcLayoutName + "[\\w\\.\\[\\]\\*\\-:\\uAC00-\\uD7A3]*");
|
||||||
Matcher matcher = pattern.matcher(cnvsncmdname);
|
Matcher matcher = pattern.matcher(cnvsncmdname);
|
||||||
|
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
@@ -52,7 +53,7 @@ public class StdMessageManController extends BaseController {
|
|||||||
@PostMapping(value = "/onl/admin/service/stdMessageMan.json", params = "cmd=LIST")
|
@PostMapping(value = "/onl/admin/service/stdMessageMan.json", params = "cmd=LIST")
|
||||||
public ResponseEntity<GridResponse<StdMessageUI>> selectList(Pageable pageable, String searchBzwkSvcKeyName,
|
public ResponseEntity<GridResponse<StdMessageUI>> selectList(Pageable pageable, String searchBzwkSvcKeyName,
|
||||||
String searchEaiSvcCode, String searchEaiSendRecv, String searchEaiDirection) {
|
String searchEaiSvcCode, String searchEaiSendRecv, String searchEaiDirection) {
|
||||||
List<StdMessageUI> map = service
|
Page<StdMessageUI> map = service
|
||||||
.selectList(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection);
|
.selectList(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection);
|
||||||
|
|
||||||
return ResponseEntity.ok(new GridResponse<>(map));
|
return ResponseEntity.ok(new GridResponse<>(map));
|
||||||
|
|||||||
+6
-6
@@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -59,14 +60,13 @@ public class StdMessageManService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ExtendedColumnDefinitionUIMapper extendedColumnDefinitionUIMapper;
|
private ExtendedColumnDefinitionUIMapper extendedColumnDefinitionUIMapper;
|
||||||
|
|
||||||
public List<StdMessageUI> selectList(Pageable pageable, String searchBzwkSvcKeyName, String searchEaiSvcCode,
|
public Page<StdMessageUI> selectList(Pageable pageable, String searchBzwkSvcKeyName, String searchEaiSvcCode,
|
||||||
String searchEaiSendRecv, String searchEaiDirection) {
|
String searchEaiSendRecv, String searchEaiDirection) {
|
||||||
|
|
||||||
return standardMessageInfoService
|
Page<StandardMessageInfo> pageResult = standardMessageInfoService
|
||||||
.findAll(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection)
|
.findAll(pageable, searchBzwkSvcKeyName, searchEaiSvcCode, searchEaiSendRecv, searchEaiDirection);
|
||||||
.stream()
|
|
||||||
.map(stdMessageUIMapper::toVo)
|
return pageResult.map(stdMessageUIMapper::toVo);
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user