(SSO) SSO 로그인 정보를 MTX_LOGIN_LOG 테이블에 저장하는 방법


sso 로그인 할 경우에 MTX_LOGIN_LOG 테이블에서 log_attribute2 필드값에 들어갈 로그인 페이지 설정 경로가 길어 저장이 안될 경우에 처리 방법

Start Release No : 7.0.400.20230330 / Update Release No :


작성자 : 박나미          / 검수자 : 정해영


기능 정보
  • API Open
  • UI Open
  • Read Only
  • Not Use
  • Hidden
  • Not Recommend


  1. 외부에서 임베디드를 통해 보고서를 조회할 때 SimpleSSO 호출 시 파라메터를 통해 MTX_LOGIN_LOG에 로그인 정보를 저장하는 방법
    a. MTX_LOGIN_LOG 테이블에 저장 시 LOG_ATTRIBUTE2 필드에 값 설정 이 필드 길이 범위가 넘어가는 데이터가 들어올 경우 오류 발생
    b. SSO 페이지 호출 시에 파라메터로 UserCode 등을 설정하여 호출 할 때 사이트에서 제공하는 암호화 key를 전달하는 경우 발생될 가능성이 있음
    c. SSO 로그인이 되면 정보를 저장 할 때 인증이 없을 경우에 redirect 시키는 url 정보 (ex : 로그인 경로 페이지)를 저장하는데 SSO는 로그인 경로에 사이트별로 상이하기 때문에 header의 refere url로 설정함
    d. 해당 url 길이가 200자가 넘어갈 경우에 MTX_LOGIN_LOG 테이블에 저장하면 "자료형 길이 Exception" 발생됨
  2. 해결 방안으로 SSO 페이지 호출 시에 파라메터로 initUrl을 전달하면 LOG_ATTRIBUTE2 에 해당 값을 저장할 수 있도록 기능 추가

String TARGET_URL = BIMATRIX_URL + "/portal/Content.jsp";
String INIT_URL = "";


boolean LOGIN_LOG_WRITE = true;
String ssoParam = "userId=" + java.net.URLEncoder.encode(USER_CODE, "UTF-8")
				+ "&targetUrl=" + java.net.URLEncoder.encode(TARGET_URL, "UTF-8");
if(LOGIN_LOG_WRITE){
	ssoParam += "&logWrite=true&initUrl=" + java.net.URLEncoder.encode(INIT_URL, "UTF-8");
}


세부 기능 명

내용

SimpleSSO 로그인 시 로그인 로그 설정 방법

  • SimpleSSO.maf 호출 시 파라메터로 logWrite=true로 설정하고 initUrl 에 인증이 없을 경우에 redirect 시킬 url을 설정한다.
  • initUrl 값을 공백으로 처리하면 MTX_LOGIN_LOG 테이블의 LOG_ATTRIBUTE2 필드 값이 공백으로 업데이트 된다.



  • SimpleSSO.maf 호출 시 파라메터로 logWrite=true로 설정하고 initUrl 에 인증이 없을 경우에 redirect 시킬 url을 설정한다.
  • logWrite = MTX_LOGIN_LOG 테이블에 SSO 로그인 정보를 저장할 지 여부
  • initUrl = 인증 정보가 없을 경우에 redirect 시킬 url 경로 (ex : 로그인 페이지로 전달 등)