페이지 트리
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 13 다음 »

Page No.  112038812

작성자 :   / 검수자 :  


 Launch Release No. 7.3.500.20250722 / Latest Release No. 

외부 포탈에서는 인증 토큰 발급하여 쿠키에 적용 한 후 iFrame 주소에 AUD플랫폼에서 연동할 url 호출
단 , 일부 기능이 크로스 도메인 block으로 처리 불가할 수 있음 (top , parent 접근 불가하여 postMessage 형식 등으로 커스텀 개발이 AUD플랫폼 내 적용되어야 함)





1. sitePortalAUD7EmSample.jsp 설정 - 고객사 Portal에 적용해야할 샘플 jsp파일

1-1) SSH KEY 설정

1-1-1) audSecretKey, audApId 설정

Admin 시스템 운영관리 > 인증 키 관리 > SSH Key 생성

 (※ 주의 : '인증 키 관리' 페이지가 보이지 않을 경우 '관리자메뉴 설정' 페이지에서 인증 키 관리 페이지를 사용 체크하여 저장한 후 새로고침 하여 접근 할 수 있음)

> Application 아이디 값을 설정하고  Secret Key와 private_key.pem을 다운로드

> SSH Key정보를 sitePortalAUD7EmSample.jsp에 설정

1-1-2) privateKey 설정 - 고객사 포탈 서버에 private_key.pem을 저장하고 경로를 지정

> loadPrivateKey 메서드 매개변수에 '인증 키 관리' 페이지에서 등록이 완료되면 발급되는 private_key.pem 파일의 위치를 설정


1-2) 인증 대상 유저 코드 설정

1-2-1) userCode 설정

> 실제 사이트에서 인증 시켜야 할 계정 값을 설정


1-3) 토큰 요청 URL 및 도메인 설정

1-3-1) AUD_AP_TOKEN_URL 설정

> AUD플랫폼 경로 설정 (Ex. "http(s)://[IP:PORT]/api/auth/sign/ap/token")

   (※ 주의 : 서버 통신 방식이기 때문에 IP:PORT를 통해 AUD플랫폼 Portal접속이 가능하면 설정하고, 도메인 URL통신만 가능하다면 해당 서버에서 도메인 통신 확인 후 진행)

AP 인증 토큰 발급 API

1. AUD 플랫폼에 등록한 Application용 클라이언트 아이디와 클라이언트 시크릿를 인증 정보로 설정하여 Application 인증 JWT 토큰 발급

  • 클라이언트에서 해당 인증 토큰 발급은 제한됩니다. 보안상 클라이언트 인증 정보가 확인될 소지 방지.
  • 타 시스템 포탈에서 최초 1회 인증 토큰 발급 후 만료되었거나 유효하지 않은 토큰일 경우 클라이언트 아이디와 클라이언트 시크릿 정보를 이용하여 인증 토큰을 재발급 합니다.
  • 발급한 토큰은 타 시스템 쿠키에 등록하여 사용합니다 . (쿠키 key = bimatrix_ap_accessToken)
요청 URL메서드Header 설정응답 형식설명

{AUD서버 주소}/api/auth/sign/ap/token

POST

서버 영역에서 API 호출 시에 Request Header로 설정하여 전달

Key설명
X-AUD-AP-Id애플리케이션 클라이언트 아이디값
X-AUD-AP-Secret-SSH

애플리케이션 클라이언트 시크릿값

  • AUD7 플랫폼 발급한 ssh private pem 파일을 이용하여 전달받은 시크릿 Key에 서명을 한 후에 전달하여 토큰 발급 요청
X-AUD-USER
  • Application용 아이디가 아닌 타 시스템에서 로그인 한 사용자로 인증 토큰 발급받아 사용 시에 세션 사용자 아이디 설정
  • 해당 사용자도 AUD 플랫폼 사용자에 등록된 id만 가능
X-AP-UPDATE-ADDR
  • 설정 도메인 (쿠키에 토큰 공유를 위한 도메인 정보)
  • 서브 도메인 , 포트는 달라도 무방함
String

AUD 플랫폼에서 발급된 SSH Private.pem 인증서를 이용하여 Secret Key를 서명한 후에 Header에 Secret Key를 설정하여 전달하여 인증 후 전달된 사용자 또는 클라이언트 아이디로 AUD 플랫폼에서 사용 가능한 인증 토큰 발급.

해당 JWT 인증 토큰을 통해 AUD 플랫폼의 기능 연동을 지원


1-3-2) AUD_AP_TOKEN_UPDATE_URL 설정

> 쿠키에 발급한 aud 인증 jwt 토큰을 공유하기 위한 도메인 설정.

(※ 참고 : 서브 도메인 허용)

2. aud.embedded.setting.jsp 설정 - sitePortalAUD7EmSample.jsp에서 참조하는 샘플 Config파일

2-1) AUD_CONFIG_DATA 설정

- bimatrix_server_url 설정 : AUD플랫폼 IP:PORT로 설정

- webRoot 설정 : AUD플랫폼 webRoot 설정

- cookie_domain 설정 : 토큰을 공유하기 위한 도메인 설정


3. AUD보고서 iFrame 임베디드 방법

> openReport 함수를 사용하여 'REPORT_AUD'라는 iFrame에 i-AUD 보고서를 임베디드


sitePortalAUD7EmSample.jsp 샘플 소스
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.IOException"%>
<%@ page import="java.net.HttpURLConnection"%>
<%@ page import="java.net.MalformedURLException"%>
<%@ page import="java.net.URL"%>
<%@ page import="java.nio.file.Files"%>
<%@ page import="java.nio.file.Paths"%>
<%@ page import="java.security.KeyFactory"%>
<%@ page import="java.security.PrivateKey"%>
<%@ page import="java.security.Signature" %>
<%@ page import="java.security.spec.PKCS8EncodedKeySpec" %>
<%@ page import="java.util.Base64" %>
<%@ page import="java.util.Enumeration" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<!DOCTYPE html>
<html>
<head>
	<meta name="viewport" content="width=device-width, user-scalable=no">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
	<meta http-equiv="Pragma" content="no-cache">
	<meta http-equiv="Expires" content="0">

	<style>
		* {
			margin: 0;
		}

		.top_panel {
			position: absolute;
			width: 100%;
			height: 50px;
			background-color: black;
		}

		.left_panel {
			position: absolute;
			width: 250px;
			background-color: darkgrey;
		}

		.foot_panel {
			position: absolute;
			bottom: 0; /* 화면의 맨 아래에 위치 */
			left: 0; /* 왼쪽 끝에서 시작 */
			width: 100%;
			height: 10px;
			background-color: pink;
		}

		.HideFrame {
			left: -50000px;
			top: -50000px;
			position: absolute;
		}

		.VisibleFrame {
			float: left;
			position: relative;
			overflow: hidden;
			left: 0px;
			top: 0px;
			width: 100%;
			height: 100%;
		}
	</style>
	<%!
		// 개인 키 로딩
		private static PrivateKey loadPrivateKey(String path) throws Exception {
			// 개인 키 로딩 로직을 구현 (파일 파싱 또는 다른 방법으로)
			System.out.println("Private Key path: " + path);
			String keyPEM = new String(Files.readAllBytes(Paths.get(path)))
                .replaceAll("-----BEGIN PRIVATE KEY-----", "")
                .replaceAll("-----END PRIVATE KEY-----", "")
                .replaceAll("\\s", "");  // 모든 공백 제거

			byte[] keyBytes = Base64.getDecoder().decode(keyPEM);
			PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
			KeyFactory keyFactory = KeyFactory.getInstance("RSA");
			return keyFactory.generatePrivate(keySpec);
		}

		// 메시지 서명
		private static String signMessage(String message, PrivateKey privateKey) throws Exception {
			Signature signature = Signature.getInstance("SHA256withRSA");
			signature.initSign(privateKey);
			signature.update(message.getBytes());

			byte[] signedBytes = signature.sign();
			return Base64.getEncoder().encodeToString(signedBytes);
		}
	%>
	<%
		response.setHeader("Pragma","no-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);

		request.setCharacterEncoding("UTF-8");

		/**
		 * 가이드 url : https://audp.bimatrix.co.kr/pages/viewpage.action?pageId=112038656
		 *
		 * 샘플 자바 소스를 확인하여 AUD7 플랫폼용 토큰 발행 API를 호출한다. jsp 에서 처리하는 부분을 서버 영역에서 처리하여 호출하는 방식 추천
		 * Application 인증용 id와 시크릿 key 는 AUD7 플랫폼 관리자를 통해 발급 받는다.
		 * 연동할 Application 서버에서는 기본 open ssh를 통해 ssh 공개키.개인키를 생성한 후 공개키를 aud7 플랫폼에 등록한다.
		 * ssh-keygen -t rsa -b 4096 -C "aud7-common"
		 **/
		String audSecretKey = "3E5D25E826E94D84B5907F2D8A52563B";
		String audApId = "matrix";

		/**
		 실제 인증시켜야 할 계정 .
		 audApId로 처리해도 무방할 경우에 따로 설정 안해도 상관 없습니다.
		 단 , 설정한 id는 AUd7 플랫폼 내에 User List에 등록되어 있는 id로 설정
		*/
		String userCode = "matrix";

		// 서버 통신 방식이기때문에 ip:port를 통해 AUD7 플랫폼 Portal 접속이 가능하면 설정하고 도메인 url 통신만 가능하다면 해당 서버에서 도메인 통신 확인 후 진행.
		String AUD_AP_TOKEN_URL = "http://[AUD플랫폼 서비스 도메인]/api/auth/sign/ap/token";
		// 쿠키에 발급한 aud 인증 jwt 토큰을 공유하기 위한 도메인 설정.
		String AUD_AP_TOKEN_UPDATE_URL = ".bimatrix.com";

		HttpURLConnection connection = null;
		String apToken = null;
		String apAccessToken = null;
		int responseCode = 0;

		try{
			if ((audApId == null || audApId.isEmpty()) || (audSecretKey == null || audSecretKey.isEmpty())){
				out.print("AUD 플랫폼에서 application 인증을 위한 id와 시크릿 키에 대한 정보가 없습니다.");
				return;
			}

			// aud7 플랫폼에서 발급받은 secret key를 ssh의 private key로 서명하여 전달한다.
			PrivateKey privateKey = loadPrivateKey("/ssh_key/private_key.pem");
			// aud7 secret key 서명 생성
			String signedMessage = signMessage(audSecretKey, privateKey);

			// header 설정은 아래처럼 해주세요.
			Map<String, String> requestHeaders = new HashMap();
			requestHeaders.put("X-AUD-AP-Id", audApId);
			requestHeaders.put("X-AUD-AP-Secret-SSH", signedMessage);
			requestHeaders.put("X-AP-UPDATE-ADDR" , AUD_AP_TOKEN_UPDATE_URL);
			if (userCode != null || !userCode.isEmpty())
				requestHeaders.put("X-AUD-USER" , userCode);

			try{
				// URL 객체 생성
				URL url = new URL(AUD_AP_TOKEN_URL);
				connection = (HttpURLConnection) url.openConnection();
			}catch(MalformedURLException e){
				out.print("AUD 플랫폼 주소가 잘못되었습니다.");
				return;
			}catch(IOException e){
				out.print("연결이 실패했습니다 [api url:"+ AUD_AP_TOKEN_URL +"]");
				return;
			}

			// HTTP 메서드 설정
			connection.setRequestMethod("POST");
			for(Map.Entry<String, String> header :requestHeaders.entrySet()) {
				connection.setRequestProperty(header.getKey(), header.getValue());
			}
			// 응답 코드 확인
			responseCode = connection.getResponseCode();

			if (responseCode == HttpURLConnection.HTTP_OK){
				apAccessToken = connection.getHeaderField("bimatrix_ap_accessToken");
				if (apAccessToken == null){
					out.println("ap token이 정상적으로 발급되지 않았습니다");
					out.println(responseCode);
					out.println(HttpURLConnection.HTTP_OK);
					return;
				}
				else{
					apToken = apAccessToken;
				}
			}else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED){
				out.print("만료된 ap token 입니다.");
				return ;
			}

		}catch(Exception e){
			e.printStackTrace();
		}finally {
			if (connection != null) {
				connection.disconnect();
			}
		}

		Map<String, String> data = new HashMap();
		Enumeration<?> paramNames = request.getParameterNames();

		while(paramNames.hasMoreElements()) {
			String key = (String) paramNames.nextElement();
			if(key.toUpperCase().indexOf("VS_")==0 || key.toUpperCase().indexOf("VN_")==0 || key.toUpperCase().indexOf("V_")==0) {
				String value = request.getParameter(key);
				data.put(key , value);
			}
		}

		StringBuilder json = new StringBuilder();
		json.append("{");
		for (Map.Entry<String, String> entry : data.entrySet()) {
			json.append("\"").append(entry.getKey()).append("\": \"")
					.append(entry.getValue()).append("\", ");
		}

		// 마지막 쉼표 제거
		if (data.size() > 0)
			json.setLength(json.length() - 2);

		json.append("}");

	%>
	<script type="text/javascript" src="./jquery-3.6.0.min.js"></script>
	<!-- aud7 embedded setting jsp file path -->
	<script type="text/javascript" src="./aud/aud.embedded.setting.jsp"></script>
	<script type="text/javascript">
	</script>

</head>
<body>
<script>
	var biServerUrl = AUD_CONFIG_DATA.bimatrix_server_url;
	var webRoot = AUD_CONFIG_DATA.webRoot;
	var apAccessToken = '<%=apAccessToken%>';
	var responseCode = '<%=responseCode%>';	 	

	window.onload = function() {
		console.log("onload");
		// 맨 처음 로딩 시 또는 외부 포탈 로그인 시에 발급받은 AUD 플랫폼 AP token을 쿠키에 설정 또는 전역 변수로 가지고 있어 매번 url 호출 시 전달
		setCookie('bimatrix_ap_accessToken', '<%=apToken%>', 1);
		winResizer();
		openReport("REPA0C74823A2F24AD980BA19538CF4C494", true , "SD");
		setGlobalParams('<%=json.toString()%>');
	}

	window.addEventListener('resize', function(event){
		winResizer();
	});

	var winResizer = function(){
		console.log('winResizer===');
		var win_w = $(window).eq(0).outerWidth();
		var win_h = $(window).eq(0).outerHeight();

		var top_panel_height = $('.top_panel').outerHeight();
		var left_panel_width = $('.left_panel').outerWidth();
		var foot_panel_height = $('.foot_panel').outerHeight();

		$('.left_panel').css('height', win_h - top_panel_height);
		$('.left_panel').css('top', top_panel_height);

		$('.main_group').css('height', win_h - top_panel_height - foot_panel_height);
		$('.main_group').css('top', top_panel_height);
		$('.main_group').css('left', left_panel_width);
		$('.main_group').css('width', win_w - left_panel_width);

		// i-AUD 보고서 영역의 title 및 버튼 영역에 대한 resize
		const iframe1 = document.querySelector('#REPORT_AUD');
		iframe1.contentWindow.postMessage('resize', '*');
	}

	var setCookie = function (cookie_name, value, days) {
		deleteCookie(cookie_name);

		var exdate = new Date();
		exdate.setDate(exdate.getDate() + days);
		// 설정 일수만큼 현재시간에 만료값으로 지정
		var cookie_value = escape(value) + ((days == null) ? '' : '; expires=' + exdate.toUTCString() + ';path=/;domain='+AUD_CONFIG_DATA.cookie_domain);
		document.cookie = cookie_name + '=' + cookie_value;
	}

	function deleteCookie(name) {
		document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;domain='+AUD_CONFIG_DATA.cookie_domain;
	}

	function gfnGetCookie(key) {
		const cookies = document.cookie.split(';');
		for (let cookie of cookies) {
			cookie = cookie.trim();

			// 쿠키 이름이 일치하는지 확인
			if (cookie.startsWith(key + '=')) {
				return cookie.substring((key + '=').length);
			}
		}

		return null;
	}

	// 보고서 오픈시에 사용하는 로직 ==========================================
	var gvModule = "";
	var AUD_VIEWER = null;

	var openReport = function(code , isTileShow , moduleCode){
		// AUD7 인증 확인
		if (aud7AuthCheck()){
			// VS_ , VN_에 대한 전역변수 Parameter 설정
			var PARAM_ARR = [];

			var frm = $('#frm');

			$.each(AUD_CONFIG_DATA.global_params, function(key, val) {
				frm.append('<input type="hidden" id="'+key+'" name= "'+key+'" value="'+val+'" />');
				PARAM_ARR.push({'KEY':key, 'VALUE':val});
			});

			switch(moduleCode) {
				case "SD": // i-aud
				case "SX":
					var REPORT_AUD = $('#REPORT_AUD')[0].contentWindow;
					AUD_VIEWER = $('#REPORT_AUD');
					var okDispose = fnDisposeAudViewer(REPORT_AUD);

					if(okDispose) {
						// 기존 i-AUD iframe 재사용
						//PARAM_ARR.push('VS_TEST=파라메터전달Test');
						REPORT_AUD.AUD.SetCustomParams(PARAM_ARR);
						REPORT_AUD.fnOpen(code , isTileShow , moduleCode);
						fnSetViewerStatus(moduleCode);
					}else{
						// i-AUD 최초 실행
						fnPurgeIFRAME(AUD_VIEWER).then(function(){
							AUD_VIEWER = $('<iframe id="REPORT_AUD" name="REPORT_AUD" width="100%" height="100%" frameborder="0" scrolling="no" class="HideFrame" ></iframe>');
							var parent = $('.main_group');
							parent.append(AUD_VIEWER);

							frm.attr({'target':'REPORT_AUD', 'action':webRoot+'/aud/iaud_main.jsp'});
							frm.append('<input type="hidden" id="audServerUrl" name="audServerUrl" value="' + AUD_CONFIG_DATA.bimatrix_server_url + '" />');
							frm.append('<input type="hidden" id="webRoot" name="webRoot" value="' + webRoot + '" />');
							frm.append('<input type="hidden" id="id" name="id" value="' + code + '" />');
							frm.append('<input type="hidden" id="isTitle" name="isTitle" value="' + isTileShow + '" />');
							frm.append('<input type="hidden" id="mCode" name="mCode" value="' + moduleCode + '" />');
							//frm.append('<input type="hidden" id="VS_TEST" name="VS_TEST" value="파라메터전달TEST" />');
							frm.submit();

							fnSetViewerStatus(moduleCode);
						});
					}

					break;
			}

			$('.main_group').removeClass('SiteHideFrame').addClass('SiteVisibleFrame');
		}
	}

	// 보고서별 iframe에 대한 화면 표시 여부 전환 상태 업데이트용
	var fnSetViewerStatus = function(module){
		if (module == "SD" || module == "SX"){ // i-AUD 보고서
			if(typeof(AUD_VIEWER) != "undefined" && AUD_VIEWER != null) {
				AUD_VIEWER.removeClass('HideFrame').addClass('VisibleFrame');
			}
		}
	}

	var fnPurgeIFRAME = function($frame) {
		var deferred = $.Deferred();
		$frame.on("load", function(){
			var frame = this;
			frame.contentWindow.document.innerHTML = '';
			$frame.remove();
			deferred.resolve();
		});
		$frame.attr('src', 'about:blank');
		return deferred.promise();
	}

	// i-AUD 제품 보고서 오픈 시, iframe에 남아있는 viewer dispose
	var fnDisposeAudViewer = function(VIEWER) {
		// i-AUD 제품 체크
		if(typeof VIEWER.AUD == "function") {
			var audViewer = VIEWER.AUD.GetMainViewer();
			if(audViewer && typeof audViewer.Dispose == "function") {
				try {
					audViewer.Dispose();
					return true;
				} catch(e) {
					console.log("i-aud viewer dispose error -  " + e.message);
					return false;
				}
			}
		}

		return false;
	};
	// ================================================================================================

	function openPopReport(reportCode){
		var winWidth = $( window ).width() - 100;
		var winHeight = $( window ).height() - 100 ;

		if (reportCode) {
        window.open(biServerUrl + "/portal/popupView.jsp?id=" + reportCode, "reportPop", "width=" + winWidth + ",height=" + winHeight + ",resizable=yes");
    	} else {
        window.open(biServerUrl + "/portal/Content.jsp", "reportPop", "width=" + winWidth + ",height=" + winHeight + ",resizable=yes");
    	}
	}

	// 토큰에 대한 인증 확인
	function aud7AuthCheck() {
		var xmlhttp = null;
		if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
		else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		xmlhttp.open("POST", biServerUrl+"/portal/service/servlet_action.jsp", false); //동기
		xmlhttp.withCredentials = true;
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		const params = "cname=check.session&isPortal=false";

		xmlhttp.send(params);

		if (xmlhttp.status === 200) {
			var authData = JSON.parse(xmlhttp.responseText);
			console.log("==== authCode:" + authData.retCode);
			if (authData.retCode == 0) {
				return true;
			} else {
				alert("token error. Token reissue check");
				return false;
			}
		} else {
			console.error("HTTP request failed with status:", xmlhttp.status);
			return false;
		}
	}

	function audApiCall(apiUrl , params){
		fetch(biServerUrl + apiUrl, {
			method: 'POST', // 또는 'POST', 'GET'
			headers: {
				'Content-Type': 'application/json'
			},
			credentials: 'include', // 쿠키를 포함하여 요청하려면 사용
			body: JSON.stringify(params)
		})
				.then(response => {
					if (!response.ok) {
						throw new Error('Network response was not ok');
					}
					return response.json(); // 응답을 JSON으로 변환
				})
				.then(data => {
					alert(JSON.stringify(data));
				})
				.catch(error => {
					console.error('There has been a problem with your fetch operation:', error);
					alert('데이터를 가져오는데 실패했습니다.');
				});
	}

</script>
<div id="wrapper" ondragstart="return false" oncontextmenu="return false" onselectstart="return false"><!-- onmousedown="return false;"  -->
	<div class="top_panel">
	</div>

	<div class="left_panel">
		<ul>
			<li>
				<div class='rep_div' onclick='openPopReport()'>팝업으로 메인 화면 호출</div>
			</li>
			<li>
				<div class='rep_div' onclick='openPopReport("REPA0C74823A2F24AD980BA19538CF4C494")'>팝업으로 보고서 호출</div>
			</li>
			<li>
				<div class='rep_div' onclick='audApiCall("/api/user/concurrent/user/auth/info", "")'>사용자 세션 정보 조회 API</div>
			</li>
			<li>
				<div class='rep_div' onclick='audApiCall("/api/portal/tree/main-menu", { "folderCode": "DEFAULT" })'>사용자 트리 보고서 목록 조회 API</div>
			</li>
		</ul>
	</div>

	<div class="main_group VisibleFrame">
		<iframe id="REPORT_AUD" name="REPORT_AUD" width="100%" height="100%" frameborder="0" scrolling="no" class="VisibleFrame" ></iframe>
	</div>
	<div class="foot_panel">
	</div>

</div>
<form id="frm" name="frm" method="post" target="" action=""></form>

</body>
</html>


aud.embedded.setting.jsp 샘플 소스
<%@ page language="java" contentType="application/javascript; charset=UTF-8" pageEncoding="UTF-8"%>

    var AUD_CONFIG_DATA = {};
    try {
        AUD_CONFIG_DATA.bimatrix_server_url = "http://[AUD플랫폼 Ip:Port]";
        AUD_CONFIG_DATA.webRoot = "/matrix";
        AUD_CONFIG_DATA.cookie_domain = ".bimatrix.co.kr";

        AUD_CONFIG_DATA.global_params = {} ;
        var setGlobalParams = function(datas) {
            if(typeof datas == "string"){
                AUD_CONFIG_DATA.global_params = JSON.parse(datas);
            }
        }

        /** 제공되는 버튼 id list
         * btnEdit : 보고서 편집
         * btnRefresh : 실행
         * btnSaveAs : 다른 이름으로 저장
         * btnExport : 내보내기
         * btnPrint : 출력
         * btnProperties : 속성 (i-Matrix 전용)
         * btnScreenArrange : 화면 arrange (i-Matrix 전용)
         **/
        AUD_CONFIG_DATA.button_disable_ids = "btnEdit;btnSaveAs";

        // i-AUD 제품 설정 정보

        // i-Matrix 제품 설정 정보
        AUD_CONFIG_DATA.imatrix_afterOpenRefresh = "false";
        AUD_CONFIG_DATA.imatrix_mxserviceVersion = "106";
        AUD_CONFIG_DATA.imatrix_used_bottom = "N";
        AUD_CONFIG_DATA.imatrix_bottom_foot_margin = "1"; // foot 영역 margin
        AUD_CONFIG_DATA.imatrix_bottom_top_margin = "40"; // top 영역 margin

    } catch (e) {
        AUD_CONFIG_DATA = {};
        alert("aud.embedded.setting.jsp : " + e.message);
    }





  • 레이블 없음