SafeIdentity
Class SSO

java.lang.Object
  extended bySafeIdentity.SSO

public class SSO
extends java.lang.Object

Safe Sign-On(SSO) 시스템을 이용하여 SSO 및 EAM 기능을 구현하기 위한 서버측 JAVA API이다.
이 클래스는 소켓을 이용하여 SSO Engine/Agent와 관련된 정보를 주고 받으므로써 사용자 인증, 암복호화 서비스, 사용자 세션 유지 등의 SSO/EAM 관련 기능을 제공한다.

SSO Java API를 사용하기 위해서는 사용하려는 계정 혹은 시스템의 환경변수에 CLASSPATH로 클래스가 위치한 경로를 설정해 주어야 한다.

Java API에서 제공하는 일부 함수들은 특정 버전의 SSO Engine/Agent에서만 지원되므로 해당 API와 통신할 SSO Engine/Agent가 어떤 버전으로 동작하고 있는지 확인하여야 한다.

SSO 제품군은 Express, Standard, Enterprise 버전으로 구분되며 각각의 버전은 아래와 같은 기능을 제공한다.

- Express 버전 : 암복호화 서비스, 사용자 인증 수행(세션을 유지하지 않음)
- Standard 버전 : 암복호화 서비스, 사용자 인증 수행(세션을 유지함)
- Enterprise 버전 : 암복호화 서비스, 사용자 인증 수행(세션을 유지함), LDAP을 이용한 사용자 신원 확인, 사용자 정보 관리, 권한관리 정보 관리, 사용자 정의 데이터 관리, 계정 정보 관리 등

이 클래스를 사용하기 위해서는 SsoAuthInfo, SsoConfig, SsoConst, SsoParser
등의 클래스가 필요하며 각 클래스의 기능은 다음과 같다. 각 클래스에 대한 상세한 설명은 해당 클래스의 문서를 참조한다.

- SsoConst : SSO 클래스에서 사용하는 상수와 에러코드를 모아놓은 클래스이다.
- SsoParser : SSO 시스템에서 공통적으로 사용하는 NVDS 형식의 문자열을 만들거나 필요한 정보를 추출하기 - 위해 사용하는 NVDS 파서 클래스 이다.
- SsoAuthInfo : Enterprise 버전의 SSO 시스템에서 많은 수의 항목값을 가진 사용자 정보를 다루기 위해 사용하는 데이터 클래스이다.
- SsoConfig : SSO 클래스에서 사용하는 서버주소, 포트번호 등의 설정값을 다루기 위한 클래스이다.

SSO 클래스에서 발생하는 에러는 다음과 같다.

- (-1) ~ (-199) : API 내부 에러(소켓 에러, 매개변수 이상, 예외 발생 등)
- (-200) ~ (-999) : API에서 발생한 에러
- (-10001) ~ (-10999) : API에서 발생한 에러
- (-1000) ~ (-1999) : SSO Engine/Agent에서 발생한 에러
- (-2000) ~ (-2999) : Policy Server에서 발생한 에러
- (-3000) ~ (-3999) : LDAP 접근과정에서 발생한 에러

API에서 발생하는 에러코드는 에러가 발생한 메소드마다 반환되는 에러코드가 다르므로 해당 에러코드를 찾으면 어떤 메소드의 호출로 인해 발생한 에러인지를 쉽게 확인할 수 있다. 자세한 에러코드는 에러코드문서를 참조한다.
API 메소드의 리턴값 데이터타입이 정수형(int)이 아닌 경우에는 메소드의 실행후에 getLastError() 메소드를 사용하여 에러 발생 여부를 검사할 수 있으며, 에러값은 다음 SSO 클래스의 API 호출 전까지 값이 유지 된다.

Since:
JDK 1.2
Version:
2.3.0
Author:
Sungho,Park(shpark@softforum.com)
See Also:
SsoAuthInfo, SsoConfig, SsoConst, SsoParser

Field Summary
static java.lang.String version
          SSO 클래스의 버전 정보.
 
Constructor Summary
SSO()
          SSO 객체의 기본 생성자.
SSO(int portNumber, java.lang.String apiKey)
          SSO 객체 생성자.
SSO(java.lang.String apiKey)
          SSO 객체 생성자(권장).
SSO(java.lang.String apiKey, int portNumber)
          SSO 객체 생성자.
 
Method Summary
 int addAccountProfile(java.lang.String token, java.lang.String serviceID, java.lang.String userID, java.lang.String password)
          사용자 계정 프로파일(Account Profile)을 추가한다.
 int addAccountProfile(java.lang.String token, java.lang.String serviceID, java.lang.String userID, java.lang.String password, java.lang.String clientIp)
          사용자 계정 프로파일(Account Profile)을 추가한다.
 int addUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String tagValue)
          사용자데이터에 하나의 필드 데이터를 더하는 메소드이다.
 int addUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String tagValue, java.lang.String clientIp)
          사용자데이터에 하나의 필드 데이터를 더하는 메소드이다.
 SsoAuthInfo authDN(java.lang.String dn, boolean overwriteOption, java.lang.String clientIP)
          인증서의 DN을 이용하여 LDAP 서비스에 등록된 사용자를 인증받는다(엔터프라이즈 버전).
 SsoAuthInfo authDN(java.lang.String dn, java.lang.String password, boolean overwriteOption, java.lang.String clientIP)
          인증서의 DN을 이용하여 LDAP 서비스에 등록된 사용자를 인증받는다(엔터프라이즈 버전).
 SsoAuthInfo authID(java.lang.String userID, boolean overwriteOption, java.lang.String clientIP)
          아이디를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
 SsoAuthInfo authID(java.lang.String userID, java.lang.String password, boolean overwriteOption, java.lang.String clientIP)
          아이디&비밀번호를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
 SsoAuthInfo authID2(java.lang.String userID, java.lang.String userIDHash, boolean overwriteOption, java.lang.String clientIP)
          아이디를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
 int createUserData(java.lang.String token, java.util.Hashtable userData)
          새로운 사용자데이터를 PS에 생성하거나 갱신한다.
 int createUserData(java.lang.String token, java.util.Hashtable userData, java.lang.String clientIp)
          새로운 사용자데이터를 PS에 생성하거나 갱신한다.
 int createUserData(java.lang.String token, java.lang.String userData)
          새로운 사용자데이터를 PS에 생성하거나 갱신한다.
 int createUserData(java.lang.String token, java.lang.String userData, java.lang.String clientIp)
          새로운 사용자데이터를 PS에 생성하거나 갱신한다.
 java.lang.String dec(java.lang.String data, java.lang.String password)
          특정 방식으로 암호화된 데이터를 복호화한다.
 int deleteAccountProfile(java.lang.String token, java.lang.String serviceID, java.lang.String password)
          사용자의 계정 프로파일(Account Profile)을 삭제한다.
 int deleteAccountProfile(java.lang.String token, java.lang.String serviceID, java.lang.String password, java.lang.String clientIp)
          사용자의 계정 프로파일(Account Profile)을 삭제한다.
 int deleteUserData(java.lang.String token)
          사용자데이터를 PS에서 삭제한다.
 int deleteUserData(java.lang.String token, java.lang.String clientIp)
          사용자데이터를 PS에서 삭제한다.
 int deleteUserDataTag(java.lang.String token, java.lang.String tagName)
          사용자데이터의 필드 하나를 삭제하는 메소드이다.
 int deleteUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String clientIp)
          사용자데이터의 필드 하나를 삭제하는 메소드이다.
 java.lang.String enc(java.lang.String data, java.lang.String password)
          사용자가 제공한 데이터를 SEED 방식으로 암호화한다.
 java.lang.String enc(java.lang.String data, java.lang.String password, int encodeType)
          사용자가 제공한 데이터를 SEED 방식으로 암호화한다.
 java.lang.String encEx(java.lang.String data, java.lang.String password, int algorithmType)
          사용자가 제공한 데이터를 지정된 방식으로 암호화한다.
 java.lang.String encEx(java.lang.String data, java.lang.String password, int algorithmType, int encodeType)
          사용자가 제공한 데이터를 지정된 방식으로 암호화한다.
 java.lang.String getAccountProfile(java.lang.String token, java.lang.String serviceID)
          저장된 사용자 계정 프로파일(Account Profile)을 가져온다.
 java.lang.String getAccountProfile(java.lang.String token, java.lang.String serviceID, java.lang.String clientIp)
          저장된 사용자 계정 프로파일(Account Profile)을 가져온다.
 java.lang.String getAllValues()
          사용자정의 데이터영역에 저장된 전체 데이터를 넘겨준다.
 boolean getAppendMode()
          Append Mode(bAppendMode)를 넘겨준다.
 java.lang.String getDSDRoleList(java.lang.String token, java.lang.String clientIP)
          사용자가 할당된 Role 기준으로 선택가능한 모든 DSD 리스트를 반환한다.
 java.lang.String getDynamicPermission(java.lang.String srdn, java.lang.String token, java.lang.String clientIP, java.lang.String orgID)
          사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
 java.lang.String getGroupIDList(java.lang.String token)
          사용자가 속해있는 그룹의 ID 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getGroupIDList(java.lang.String token, java.lang.String clientIP)
          사용자가 속해있는 그룹의 ID 목록을 검색한다(엔터프라이즈 버전).
 int getIndex(java.lang.String tag, java.lang.String value)
           
 int getIndex(java.lang.String source, java.lang.String tag, java.lang.String value)
          주어진 태그이름-데이터 쌍을 찾아 해당 태그이름에서의 인덱스 값을 넘겨준다.
 int getLastError()
          가장 최근의 에러 코드를 리턴한다.
 java.lang.String getLastErrorMsg()
          내부적으로 발생한 가장 최근의 에러 메시지를 리턴한다.
 java.lang.String getPermission(java.lang.String srdn)
          익명의 사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
 java.lang.String getPermission(java.lang.String srdn, java.lang.String token, java.lang.String clientIP)
          사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
 java.lang.String getPermission(java.lang.String srdn, java.lang.String token, java.lang.String clientIP, boolean bRoleSearch)
          사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
 java.lang.String getResourceList(java.lang.String sBase, java.lang.String scope, java.lang.String token, java.lang.String permission, java.lang.String clientIP, boolean bRoleSearch)
          사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getResourcePermission(java.lang.String srdn, java.lang.String token, java.lang.String clientIP, boolean bRoleSearch)
          사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
 java.lang.String getSchemaData(java.lang.String token, java.lang.String attrName)
          LDAP 등의 자료저장소에 저장된 데이터를 가져온다.
 java.lang.String getSchemaData(java.lang.String token, java.lang.String attrName, java.lang.String clientIp)
          LDAP 등의 자료저장소에 저장된 데이터를 가져온다.
 java.lang.String getSchemaOrgID(java.lang.String token)
          LDAP 등의 자료저장소에서 사용자의 조직 ID를 가져온다.
 java.lang.String getSchemaOrgID(java.lang.String token, java.lang.String clientIp)
          LDAP 등의 자료저장소에서 사용자의 조직 ID를 가져온다.
 java.lang.String getServiceList_OrderByID(java.lang.String sBase, java.lang.String scope, java.lang.String token, java.lang.String permission, java.lang.String clientIP)
           
 java.lang.String getServiceList(java.lang.String sBase, java.lang.String scope)
          익명의 사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getServiceList(java.lang.String sBase, java.lang.String scope, java.lang.String token, java.lang.String permission, java.lang.String clientIP)
          사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getServiceList(java.lang.String sBase, java.lang.String scope, java.lang.String token, java.lang.String permission, java.lang.String clientIP, boolean bRole)
          사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getServiceListOption(java.lang.String sBase, java.lang.String scope, java.lang.String token, java.lang.String permission, java.lang.String clientIP, int nOption)
          사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).
 java.lang.String getServiceTree(java.lang.String token, java.lang.String serviceID)
          사용자가 사용가능한 서비스 프로파일과 서비스 구조 프로파일의 목록(Service Tree)를 가져온다.
 java.lang.String getServiceTree(java.lang.String token, java.lang.String serviceID, java.lang.String clientIp)
          사용자가 사용가능한 서비스 프로파일과 서비스 구조 프로파일의 목록(Service Tree)를 가져온다.
 java.lang.String getToken()
          실제 생성된 토큰값(String)을 리턴한다.
 java.lang.String getUserData(java.lang.String token)
          PS에서 사용자데이터를 가져온다.
 java.lang.String getUserData(java.lang.String token, java.lang.String clientIp)
          PS에서 사용자데이터를 가져온다.
 java.util.Hashtable getUserDataHashtable(java.lang.String token)
          PS에서 사용자데이터를 가져온다.
 java.util.Hashtable getUserDataHashtable(java.lang.String token, java.lang.String clientIp)
          PS에서 사용자데이터를 가져온다.
 java.lang.String getUserDataTag(java.lang.String token, java.lang.String tagName)
          사용자데이터를 필드 단위로 얻어온다.
 java.lang.String getUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String clientIp)
          사용자데이터를 필드 단위로 얻어온다.
 java.lang.String[] getUserRoleList(java.lang.String token, java.lang.String clientIP)
          사용자에 할당된 모든 Role 리스트를 반환한다.
 java.lang.String getValue(java.lang.String tagName)
          사용자 데이터 값에서 특정 태그의 값을 조회한다.
 java.lang.String getValue(java.lang.String tagName, int index)
          사용자 데이터 값에서 특정 태그 값을 조회한다.
 java.lang.String getValueCLT()
          CLT 값을 참조하기 위한 메소드이다.
 java.lang.String getValueUserID()
          사용자 데이터 값에서 사용자 아이디(UID)값을 조회한다.
 java.util.Hashtable getValueUsingHashTable()
           
 java.lang.String getVersion()
          SSO 클래스의 버젼을 알려준다.
 java.lang.String hash(java.lang.String data)
          사용자가 입력한 데이터를 SHA-1 방식으로 해쉬한다.
 java.lang.String hash(java.lang.String data, int encodeType)
          사용자가 입력한 데이터를 SHA-1 방식으로 해쉬한다.
 java.lang.String hashEx(java.lang.String data, int algorithmType)
          사용자가 입력한 데이터를 사용자가 지정한 방식으로 해쉬한다.
 java.lang.String hashEx(java.lang.String data, int algorithmType, int encodeType)
          사용자가 입력한 데이터를 사용자가 지정한 방식으로 해쉬한다.
 int log(java.lang.String logID, java.lang.String logMsg)
          SSO Engine의 log 디렉토리에 사용자 정의 로그를 남긴다.
 java.lang.String makeSimpleToken(int version, java.lang.String userID, java.lang.String targetServerID)
          SSO 토큰을 생성한다(익스프레스 버전).
 java.lang.String makeSimpleToken(int version, java.lang.String userID, java.lang.String targetServerID, java.lang.String clientIP)
          SSO 토큰을 생성한다(익스프레스 버전).
 java.lang.String makeSimpleToken(java.lang.String userID)
          아직 지원하지 않는다.
 java.lang.String makeSimpleToken(java.lang.String userID, java.lang.String clientIP)
           
 java.lang.String makeSimpleToken(java.lang.String version, java.lang.String userID, java.lang.String targetServerID, java.lang.String clientIP)
           
 java.lang.String makeToken()
           
 java.lang.String makeToken(int version, java.lang.String sessionToken, java.lang.String targetServerID)
          SSO 토큰을 생성한다(스탠다드 버전).
 java.lang.String makeToken(int version, java.lang.String sessionToken, java.lang.String targetServerID, java.lang.String clientIP)
          SSO 토큰을 생성한다(스탠다드 버전).
 java.lang.String makeToken(java.lang.String sessionToken)
           
 java.lang.String makeToken(java.lang.String sessionToken, java.lang.String clientIP)
           
 java.lang.String makeToken(java.lang.String version, java.lang.String sessionToken, java.lang.String targetServerID, java.lang.String clientIP)
           
 int modifyAccountID(java.lang.String token, java.lang.String serviceID, java.lang.String userID, java.lang.String password)
          사용자의 계정 프로파일(Account Profile)의 사용자 ID 값을 수정한다.
 int modifyAccountID(java.lang.String token, java.lang.String serviceID, java.lang.String userID, java.lang.String password, java.lang.String clientIp)
          사용자의 계정 프로파일(Account Profile)의 사용자 ID 값을 수정한다.
 int modifyAccountPassword(java.lang.String token, java.lang.String serviceID, java.lang.String password, java.lang.String newPassword)
          사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 수정한다.
 int modifyAccountPassword(java.lang.String token, java.lang.String serviceID, java.lang.String password, java.lang.String newPassword, java.lang.String clientIp)
          사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 수정한다.
 int modifyAccountPasswordInit(java.lang.String userID, java.lang.String serviceID, java.lang.String newPassword, java.lang.String clientIp)
          사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 초기화한다.
 void printVersion()
          SSO 클래스의 버젼을 표준 출력으로 보여준다.
 int putValue(java.lang.String tagName, java.lang.String tagValue)
          사용자정의 데이터영역에 데이터를 추가한다.
 void putValueUsingHashTable(java.util.Hashtable table)
           
 int rand()
          십진 의사 난수를 생성한다.
 java.lang.String randEx(int size, int encodeType)
          지정된 크기의 바이트 배열 의사 난수 데이터를 만들어 낸다.
 int regUserSession(java.lang.String userID, java.lang.String clientIP, boolean overwriteOption)
          사용자 세션 정보를 만들고 정책 서버(Policy Server)에 등록한다(스탠다드 버전).
 void resetAllValues()
          사용자 데이터값을 모두 초기화한다.
 void setAppendMode(boolean bAppendMode)
          Append Mode를 설정한다.
 java.lang.String setDSDRoleList(java.lang.String[] DSDRoleList, java.lang.String token, java.lang.String clientIP)
          사용자가 선택한 DSD Role을 Token에 설정한다.
 void setHostName(java.lang.String hostName)
          SSO 엔진의 호스트명을 지정된 값으로 변경한다.
 void setPortNumber(int portNumber)
          SSO 엔진의 포트번호를 지정된 값으로 변경한다.
 java.lang.String SortList(java.lang.String serviceList)
           
 int unregUserSession(java.lang.String token)
          사용자 세션 정보를 삭제한다(스탠다드 버전, 엔터프라이즈 버전).
 int unregUserSession(java.lang.String token, java.lang.String clientIP)
          사용자 세션 정보를 삭제한다(스탠다드 버전).
 int updateUserData(java.lang.String token, java.util.Hashtable userData)
           
 int updateUserData(java.lang.String token, java.util.Hashtable userData, java.lang.String clientIp)
           
 int updateUserData(java.lang.String token, java.lang.String userData)
           
 int updateUserData(java.lang.String token, java.lang.String userData, java.lang.String clientIp)
           
 int updateUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String tagValue, boolean overwriteFlag)
          사용자데이터를 필드 단위로 갱신한다.
 int updateUserDataTag(java.lang.String token, java.lang.String tagName, java.lang.String tagValue, boolean overwriteFlag, java.lang.String clientIp)
          사용자데이터를 필드 단위로 갱신한다.
 int userAdd(SsoAuthInfo authInfo)
          새로운 사용자를 LDAP 서비스에 추가한다(엔터프라이즈 버전).
 int userAdd(java.lang.String userID, java.lang.String name, java.lang.String ous)
          새로운 사용자 정보를 LDAP 서비스에 추가한다(엔터프라이즈 버전) .
 int userDisable(java.lang.String token, java.lang.String password, int reasonCode)
          LDAP 서비스에 등록된 사용자를 '잠금상태'로 설정한다(엔터프라이즈 버전).
 int userDisable(java.lang.String token, java.lang.String password, int reasonCode, java.lang.String clientIP)
          LDAP 서비스에 등록된 사용자를 '잠금상태'로 설정한다(엔터프라이즈 버전).
 int userModify(SsoAuthInfo authInfo, java.lang.String clientIP)
          LDAP 서비스에 등록된 사용자의 정보를 수정한다(엔터프라이즈 버전).
 int userModifyPwd(java.lang.String token, java.lang.String currentPassword, java.lang.String newPassword)
          LDAP 서비스에 등록된 사용자의 비밀번호를 변경한다(엔터프라이즈 버전).
 int userModifyPwd(java.lang.String token, java.lang.String currentPassword, java.lang.String newPassword, java.lang.String clientIP)
          LDAP 서비스에 등록된 사용자의 비밀번호를 변경한다(엔터프라이즈 버전).
 int userPasswordInit(java.lang.String userID, java.lang.String userPassword, int nPasswordMustChangeFlag, java.lang.String clientIP)
          LDAP 서비스에 등록된 사용자의 비밀번호를 초기화한다(엔터프라이즈 버전).
 int userSearch(java.lang.String userID)
          해당 사용자가 존재하는지 LDAP 서비스를 검색한다(엔터프라이즈 버전).
 SsoAuthInfo userView(java.lang.String token)
          LDAP 서비스에 등록된 사용자의 정보를 얻어온다(엔터프라이즈 버전).
 SsoAuthInfo userView(java.lang.String token, java.lang.String clientIP)
          LDAP 서비스에 등록된 사용자의 정보를 얻어온다(엔터프라이즈 버전).
 int verifyToken(java.lang.String token)
          SSO 토큰을 검증한다.
 int verifyToken(java.lang.String token, java.lang.String clientIP)
          SSO 토큰을 검증한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

version

public static final java.lang.String version
SSO 클래스의 버전 정보.
getClass 메소드를 이용하면 SafeSignOn 패키지에 속한 모든 클래스의 버전 정보를 알아낼 수 있다.

See Also:
Object.getClass(), Constant Field Values
Constructor Detail

SSO

public SSO()
SSO 객체의 기본 생성자.

기본 설정값을 사용하여 SSO 클래스 객체를 생성한다. 기본 설정값은 SsoConfig 클래스에 정의되어 있다. 이 생성자를 이용하여 생성한 SSO 객체는 SSO API Key의 값이 null로 설정되므로 SSO 토큰을 검증하는 데 사용할 수는 있으나 SSO 토큰을 생성하는 데는 사용할 수 없다. 해당 SSO 객체를 이용하여 SSO 토큰 생성을 시도하면 API키가 없다는 에러를 넘겨준다. 발생하는 에러에 대한 자세한 사항은 에러 문서를 참조한다.

See Also:
SsoConfig, SSO(java.lang.String), SSO(int, java.lang.String), SSO(java.lang.String, int)

SSO

public SSO(java.lang.String apiKey)
SSO 객체 생성자(권장).

API Key를 매개변수로 입력받는다. 이 매개변수는 외부 시스템에 의한 부적절한 접근을 막기 위해 사용되며, 해당 키값은 SSO Engine/Agent의 keydb/ssotoken.key 파일에 저장되어 있다. SSO API를 이용하는 개발자가 SSO 객체를 생성할 때, 이 생성자의 사용을 권장한다. makeSimpletoken(), regUserSession(), AuthID(), AuthDN() userAdd() 등을 사용하기 위해 SSO 객체를 생성할 때는 반드시 이 생성자를 사용 하여 API Key값을 설정해줘야 한다. 다른 설정값은 기본 설정값을 사용하며 기본 설정값에 대해서는 SsoConfig 클래스를 참고한다.

Parameters:
apiKey - 특정 메소드 호출시 보안 강화를 위해 사용하는 키 값.

See Also:
SsoConfig, SSO(), SSO(int, java.lang.String), SSO(java.lang.String, int)

SSO

public SSO(int portNumber,
           java.lang.String apiKey)
SSO 객체 생성자.

SSO Engine/Agent와의 통신에 사용하는 포트번호와 API Key를 매개변수로 입력받아 설정한다. SSO Engine/Agent의 서버 주소는 기본값(localhost)를 사용한다. 기타 기본 설정값에 대해서는 SsoConfig 클래스를 참고한다.

Parameters:
portNumber - SSO Engine/Agent의 접속 포트번호. 1~65535의 범위를 벗어나면 기본값으로 설정된다.

apiKey - 특정 메소드 호출시 보안 강화를 위해 사용하는 키 값.

See Also:
SsoConfig, SSO(), SSO(java.lang.String), SSO(java.lang.String, int)

SSO

public SSO(java.lang.String apiKey,
           int portNumber)
SSO 객체 생성자.

SSO Engine/Agent와의 통신에 사용하는 포트번호와 API Key를 매개변수로 입력받아 설정한다. SSO Engine/Agent의 서버 주소는 기본값(localhost)를 사용한다. 기타 기본 설정값에 대해서는 SsoConfig 클래스를 참고한다.

Parameters:
portNumber - SSO Engine/Agent의 접속 포트번호. 1~65535의 범위를 벗어나면 기본값으로 설정된다.

apiKey - 특정 메소드 호출시 보안 강화를 위해 사용하는 키 값.

See Also:
SsoConfig, SSO(), SSO(java.lang.String), SSO(int, java.lang.String)
Method Detail

log

public int log(java.lang.String logID,
               java.lang.String logMsg)
SSO Engine의 log 디렉토리에 사용자 정의 로그를 남긴다.
로그 아이디와 로그 메시지에 대한 정의와 형식은 사용자가 임의로 정한다. 일반적으로 로그 아이디는 로그를 보내는 각각의 응용 프로 그램을 구분할 수 있도록 정의하는 것이 좋다. 이 메소드는 과도하게 사용할 경우 프로그램의 수행 속도를 저하시키기 때문에 필요한 경우에 제한하여 사용한다.

Parameters:
logID - 사용자가 정의한 임의의 아이디. 메시지를 누가 보냈는지 구분하기 위해 사용한다. (최대 16bytes )
logMsg - 사용자가 정의한 임의의 메시지. (최대 80bytes)

Returns:
로그를 남기는 데 성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.
See Also:
SsoConst.E_LOG

enc

public java.lang.String enc(java.lang.String data,
                            java.lang.String password)
사용자가 제공한 데이터를 SEED 방식으로 암호화한다.
결과는 BASE64 방식으로 인코딩하여 넘겨준다. 암호화는 SSO Engine/Agent 에서 수행한다.

Parameters:
data - 암호화할 데이터
password - 암호화에 사용할 비밀번호

Returns:
data 데이터를 SEED 방식으로 암호화한 데이터. BASE64 방식으로 인코딩하여 넘겨준다. 암호화에 실패하면 null을 넘겨준다.
See Also:
SsoConst.E_ENC, enc(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int, int), dec(java.lang.String, java.lang.String)

enc

public java.lang.String enc(java.lang.String data,
                            java.lang.String password,
                            int encodeType)
사용자가 제공한 데이터를 SEED 방식으로 암호화한다.
결과는 지정된 방식으로 인코딩하여 넘겨준다. 인코딩 방식으로 HEXA, BASE64 등을 사용할 수 있다. 바이너리 데이터에 대한 암호화는 지원하지 않는다. 암호화는 SSO Engine/Agent 에서 수행한다.

Parameters:
data - 암호화할 데이터
password - 암호화에 사용할 비밀번호
encodeType - 암호화한 데이터의 인코딩 방식. (SsoConst 클래스의 ENC_BASE64, ENC_HEXA, ENC_DEFAULT 상수를 사용할 수 있다.)

Returns:
data 데이터를 SEED 방식으로 암호화한 데이터. 사용자가 지정한 방식으로 인코딩하여 넘겨준다. 암호화에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_ENC, enc(java.lang.String, java.lang.String), encEx(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int, int), dec(java.lang.String, java.lang.String)

encEx

public java.lang.String encEx(java.lang.String data,
                              java.lang.String password,
                              int algorithmType)
사용자가 제공한 데이터를 지정된 방식으로 암호화한다.
암호화 방식은 SEED, 3DES, RC4 등이 있다. 결과는 BASE64 방식으로 인코딩하여 넘겨준다. 바이너리 데이터에 대한 암호화는 지원하지 않는다. 암호화는 SSO Engine/Agent 에서 수행한다.

암호화는 SSO Engine/Agent 에서 수행한다.

Parameters:
data - 암호화할 데이터
password - 암호화에 사용할 비밀번호
algorithmType - 데이터의 암호화 방식. (SsoConst 클래스의 ALGO_SEED, ALGO_3DES, ALGO_RC4_128, ALGO_DEFAULT 상수를 사용할 수 있다.)

Returns:
data 데이터를 지정된 방식으로 암호화한 데이터. BASE64 방식으로 인코딩하여 넘겨준다. 암호화에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_ENC, enc(java.lang.String, java.lang.String), enc(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int, int), dec(java.lang.String, java.lang.String)

encEx

public java.lang.String encEx(java.lang.String data,
                              java.lang.String password,
                              int algorithmType,
                              int encodeType)
사용자가 제공한 데이터를 지정된 방식으로 암호화한다.
암호화 방식은 SEED, 3DES, RC4 등이 있다. 결과는 사용자가 지정한 방식으로 인코딩하여 넘겨준다. 인코딩 방식으로 HEXA, BASE64 등을 사용할 수 있다. 바이너리 데이터에 대한 암호화는 지원하지 않는다.

암호화는 SSO Engine/Agent 에서 수행한다.

Parameters:
data - 암호화할 데이터
password - 암호화에 사용할 비밀번호
algorithmType - 데이터의 암호화 방식. (SsoConst 클래스의 ALGO_SEED, ALGO_3DES, ALGO_RC4_128, ALGO_DEFAULT 상수를 사용할 수 있다.)

encodeType - 암호화한 데이터의 인코딩 방식. (SsoConst 클래스의 ENC_BASE64, ENC_HEXA, ENC_DEFAULT 상수를 사용할 수 있다.)

Returns:
data 데이터를 지정된 방식으로 암호화한 데이터. 사용자가 지정한 방식으로 인코딩하여 넘겨준다. 암호화에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_ENC, enc(java.lang.String, java.lang.String), enc(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int), dec(java.lang.String, java.lang.String)

dec

public java.lang.String dec(java.lang.String data,
                            java.lang.String password)
특정 방식으로 암호화된 데이터를 복호화한다.
암호화 방식이나 인코딩 방식에 대한 정보는 데이터에 포함되어 있으므로 특별히 명시할 필요가 없다. Enc(), EncEx() 메소드를 이용하여 암호화한 데이터는 모두 이 메소드를 이용하여 복호화한다. 복호화는 SSO Engine/Agent에서 수행한다.

Parameters:
data - 복호화할 데이터
password - 복호화에 사용할 비밀번호

Returns:
복호화된 데이터. 복호화에 실패하면 null을 넘겨준다.
See Also:
enc(java.lang.String, java.lang.String), enc(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int), encEx(java.lang.String, java.lang.String, int, int)

hash

public java.lang.String hash(java.lang.String data)
사용자가 입력한 데이터를 SHA-1 방식으로 해쉬한다.
해쉬한 결과는 BASE64 방식으로 인코딩하여 넘겨준다. 해쉬는 SSO Engine/Agent에서 수행한다.

Parameters:
data - 해쉬할 데이터

Returns:
SHA-1방식으로 해쉬된 데이터. BASE64 방식으로 인코딩되어 넘겨준다. 해쉬에 실패하면 null을 넘겨준다.
See Also:
SsoConst.E_HASH, hash(java.lang.String, int), hashEx(java.lang.String, int), hashEx(java.lang.String, int, int)

hash

public java.lang.String hash(java.lang.String data,
                             int encodeType)
사용자가 입력한 데이터를 SHA-1 방식으로 해쉬한다.
해쉬한 결과는 사용자가 지정한 방식으로 인코딩하여 넘겨준다. 인코딩 방식으로 HEXA, BASE64 등을 사용할 수 있다. 내부적으로 hashEx() 메소드를 사용한다.

Parameters:
data - 해쉬할 데이터
encodeType - 데이터의 인코딩 방식. (SsoConst 클래스의 ENC_BASE64, ENC_HEXA, ENC_DEFAULT 상수를 사용할 수 있다.)

Returns:
SHA-1방식으로 해쉬된 데이터. 지정된 방식으로 인코딩되어 넘겨준다. 해쉬에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_HASH, hash(java.lang.String), hashEx(java.lang.String, int), hashEx(java.lang.String, int, int)

hashEx

public java.lang.String hashEx(java.lang.String data,
                               int algorithmType)
사용자가 입력한 데이터를 사용자가 지정한 방식으로 해쉬한다.
해쉬 방식으로는 SHA-1, MD2, MD5 등이 있다. 해쉬한 결과는 BASE64 방식으로 인코딩하여 넘겨준다.

Parameters:
data - 해쉬할 데이터
algorithmType - 데이터의 해쉬 방식. (SsoConst 클래스의 ALGO_SHA1, ALGO_MD2, ALGO_MD5 상수를 사용할 수 있다.)

Returns:
지정된 방식으로 해쉬된 데이터. BASE64 방식으로 인코딩되어 넘겨준다. 해쉬에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_HASH, hash(java.lang.String), hash(java.lang.String, int), hashEx(java.lang.String, int, int)

hashEx

public java.lang.String hashEx(java.lang.String data,
                               int algorithmType,
                               int encodeType)
사용자가 입력한 데이터를 사용자가 지정한 방식으로 해쉬한다.
해쉬 방식으로는 SHA-1, MD2, MD5 등이 있다. 해쉬한 결과는 사용자가 지정한 방식으로 인코딩하여 넘겨준다. 인코딩 방식으로 HEXA, BASE64 등을 사용할 수 있다.

Parameters:
data - 해쉬할 데이터
algorithmType - 데이터의 해쉬 방식. (SsoConst 클래스의 ALGO_SHA1, ALGO_MD2, ALGO_MD5 상수를 사용할 수 있다.)

encodeType - 데이터의 인코딩 방식. (SsoConst 클래스의 ENC_BASE64, ENC_HEXA, ENC_DEFAULT 상수를 사용할 수 있다.)

Returns:
지정된 방식으로 해쉬된 데이터. 지정된 방식으로 인코딩되어 넘겨준다. 해쉬에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_HASH, hash(java.lang.String), hash(java.lang.String, int), hashEx(java.lang.String, int)

rand

public int rand()
십진 의사 난수를 생성한다.
난수는 정수형(int)으로 생성된다.

Returns:
정수형의 십진 의사 난수. 난수 생성에 실패하면 음수의 에러코드를 넘겨준다.
See Also:
SsoConst.E_RAND, randEx(int, int)

randEx

public java.lang.String randEx(int size,
                               int encodeType)
지정된 크기의 바이트 배열 의사 난수 데이터를 만들어 낸다.
의사 난수는 이진 데이터 형식을 가지며 사용자가 지정한 형식 (HEXA, BASE64)으로 인코딩 되어 넘겨준다.

Parameters:
size - 생성될 의사 난수의 바이트 길이
encodeType - 데이터의 인코딩 방식. (SsoConst 클래스의 ENC_BASE64, ENC_HEXA, ENC_DEFAULT 상수를 사용할 수 있다.)

Returns:
지정된 방식으로 인코딩된 의사 난수. 의사 난수 생성에 실패하면 null을 넘겨준다.

See Also:
SsoConst.E_RAND, rand()

makeSimpleToken

public java.lang.String makeSimpleToken(java.lang.String userID)
아직 지원하지 않는다. public String macEx(String data, String password, int algorithmType, int encodeType) { _ssoDump(SsoConst.DEBUG_INFO, SsoConst.E_MAC_NOT_IMPLEMENTED, "macEx() start"); return null; /* _ssoDump(SsoConst.DEBUG_TRACE, SsoConst.E_TRACE, "mac() or macEx() start"); resetLastError(); if (data == null || password == null) { _ssoDump(SsoConst.DEBUG_ERROR,SsoConst.E_NULL_PARAM, "macEx()"); return null; } if (algorithmType <= SsoConst.ALGORITHM_ENC_TYPE || algorithmType >= SsoConst.ALGO_HASH_MAX || encodeType <= SsoConst.ENCODE_TYPE || encodeType >= SsoConst.ENC_MAX) { _ssoDump(SsoConst.DEBUG_ERROR,SsoConst.E_OUTBOUND_PARAM, "macEx()"); return null; } //CMD-CS_MAC*ALG-MD5*PWD-12345678900*DATA-This is a sample data string*RTYPE-ENCODE_HEXA* SsoParser parser = new SsoParser(); parser.add(SsoConst.TAGCMD, SsoConst.MAC); parser.add(SsoConst.TAGDATA, data); parser.add(SsoConst.TAGPWD, password); switch (algorithmType) { case SsoConst.ALGO_SHA1: parser.add(SsoConst.TAGALG, "SHA1"); break; case SsoConst.ALGO_MD2: parser.add(SsoConst.TAGALG, "MD2"); break; case SsoConst.ALGO_MD5: parser.add(SsoConst.TAGALG, "MD5"); break; default: parser.add(SsoConst.TAGALG, "SHA1"); break; } switch (encodeType) { case SsoConst.ENC_BASE64: parser.add(SsoConst.TAGRTYPE, "ENCODE_BASE64"); break; case SsoConst.ENC_HEXA: parser.add(SsoConst.TAGRTYPE, "ENCODE_HEXA"); break; default: parser.add(SsoConst.TAGRTYPE, "ENCODE_DEFAULT"); break; } String ssoResponse = _ssoExecute(parser.getQuery()); /////////////////////////////////////////////////////////////////////// // sso 응답이 넘어왔는지 검사한다. if (ssoResponse == null) { _ssoDump(SsoConst.DEBUG_CRITICAL, SsoConst.E_REQUEST_FAILED, "macEx()"); return null; } parser.setQuery(ssoResponse); String returnCode = parser.search(SsoConst.TAGRESULT); // RESULT 태그값이 null인지 검사한다. if (returnCode == null) { _ssoDump(SsoConst.DEBUG_CRITICAL, SsoConst.E_INVALID_RESULT_VALUE, "macEx()"); return null; } // RESULT 태그의 값을 검사한다. if(returnCode.equals("0") ) { //리턴값이 "0"(성공) 이면 암호화된 결과 메시지를 돌려준다. String resultMessage = parser.search("RESULTMSG"); if (resultMessage == null) _ssoDump(SsoConst.DEBUG_CRITICAL, SsoConst.E_MAC_FAILED, "macEx()"); return resultMessage; } else { // "0" 이외의 값이 넘어오면 int error; try { error = Integer.parseInt(returnCode); } catch (NumberFormatException e) { error = SsoConst.E_INVALID_RESULT_VALUE; } _ssoDump(SsoConst.DEBUG_ERROR,error,"dec(), returnCode=" + returnCode); return null; } }


makeSimpleToken

public java.lang.String makeSimpleToken(java.lang.String userID,
                                        java.lang.String clientIP)

makeSimpleToken

public java.lang.String makeSimpleToken(int version,
                                        java.lang.String userID,
                                        java.lang.String targetServerID)
SSO 토큰을 생성한다(익스프레스 버전).
자세한 사항은 makeSimpleToken( int, String, String, String)을 참조한다

Parameters:
version - 생성할 토큰의 버전
userID - 토큰을 생성하고자 하는 사용자의 아이디
targetServerID - 토큰 생성을 요청할 서버의 서버아이디 혹은 그룹아이디. 입력값은 생성할 토큰의 버전에 따라 다르다.

Returns:
SSO 토큰 생성에 성공하면 생성된 토큰을 리턴한다. SSO 토큰 생성에 실패하면 null 값을 넘겨주며 getLastError()메소드로 에러코드를 알 수 있다.

See Also:
makeSimpleToken(int, java.lang.String, java.lang.String, java.lang.String)

makeSimpleToken

public java.lang.String makeSimpleToken(java.lang.String version,
                                        java.lang.String userID,
                                        java.lang.String targetServerID,
                                        java.lang.String clientIP)

makeSimpleToken

public java.lang.String makeSimpleToken(int version,
                                        java.lang.String userID,
                                        java.lang.String targetServerID,
                                        java.lang.String clientIP)
SSO 토큰을 생성한다(익스프레스 버전).
Express 버전의 SSO Engine/Agent 에서는 버전이 21, 22, 23 인 토큰만을 만들 수 있다. version 매개변수의 값을 1, 2, 3 으로 설정해도 엔진에서 자동으로 21, 22, 23으로 변경하여 토큰을 생성한다. 토큰 버전의 1(21), 2(22), 3(23)는 각각 토큰 생성시의 암호화 및 서명 방식을 나타내며 다음과 같이 구분된다. - 1(21) : 대칭키 암호화 및 토큰 생성 SSO Engine의 개인키로 서명 - 2(22) : 비대칭키 암호화 및 토큰 생성 SSO Engine의 개인키로 서명 - 3(23) : 대칭키 암호화 및 그룹의 공유키(ssotoken key)로 서명(HMAC) 익스프레스 버전의 토큰이 다른 버전의 토큰과 다른 점은 사용자 세션을 유지하는가 유지하지 않는가에 있다. 그러므로 익스프레스 버전의 토큰을 사용하면 사용자의 접속 여부를 추적하거나 만료시간등을 지정할 수 없다. 생성된 토큰은 리턴값으로 넘겨주지만, getToken()메소드를 사용하여 얻어낼 수도 있다. makeSimpleToken()이나 makeToken(), verifyToken()을 수행한 후에 새로운 토큰을 생성하기 위해서는 객체를 다시 생성하거나 resetAllValues()를 호출한다. 그렇지 않으면 사용자 데이터에 예상치 않은 값이 들어갈 수도 있기 때문이다.

Parameters:
version - 생성할 토큰의 버전. 21,22,23을 지원한다. 참고로 버전 1, 2, 3 의 토큰은 makeToken() 등의 메소드를 이용하여 생성할 수 있다. (익스프레스 버전에서는 makeToken() 메소드가 지원되지 않으므로 사용할 수 없다.)
userID - 토큰을 생성하고자 하는 사용자의 아이디
targetServerID - 토큰이 사용될 서버의 ID 혹은 서버 그룹의 그룹 ID
- 버전 21 : 서버 그룹 ID(SSO Engine/Agent의 keydb/ssotoken.key에 등록) - 버전 22 : 서버 ID(sso_engine.conf에 등록된 LS의 아이디)이다.
- 버전 23 : 서버 그룹 ID(SSO Engine/Agent의 keydb/ssotoken.key에 등록)
clientIP - 토큰생성을 요청한 사용자의 IP 주소 (없거나 사용하지 않을 때는 null)

Returns:
SSO 토큰 생성에 성공하면 생성된 토큰을 리턴한다. SSO 토큰 생성에 실패하면 null 값을 넘겨주며 getLastError()메소드로 에러코드를 알 수 있다.

See Also:
makeSimpleToken(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

makeToken

public java.lang.String makeToken()

makeToken

public java.lang.String makeToken(java.lang.String sessionToken)

makeToken

public java.lang.String makeToken(java.lang.String sessionToken,
                                  java.lang.String clientIP)

makeToken

public java.lang.String makeToken(int version,
                                  java.lang.String sessionToken,
                                  java.lang.String targetServerID)
SSO 토큰을 생성한다(스탠다드 버전).
자세한 사항은 makeToken( int, String, String, String)을 참조한다.

Parameters:
version - 생성할 토큰의 버전.
sessionToken - regUserSession() 이나 authID() 등으로 생성한 사용사 세션 정보를 담고 있는 토큰. 스탠다드 버전에서는 regUserSession()를 사용하며 엔터프라이즈 버전에서는 authID()나 authDN()을 사용하여 세션 토큰을 생성한다.
targetServerID - 토큰이 사용될 SSO Engine/Agent의 서버아이디 혹은 그룹아이디.

Returns:
SSO 토큰 생성에 성공하면 생성된 토큰을 리턴한다. SSO 토큰 생성에 실패하면 null 값을 넘겨주며 getLastError()메소드로 에러코드를 알 수 있다.

See Also:
makeToken( int, String, String, String)

makeToken

public java.lang.String makeToken(java.lang.String version,
                                  java.lang.String sessionToken,
                                  java.lang.String targetServerID,
                                  java.lang.String clientIP)

makeToken

public java.lang.String makeToken(int version,
                                  java.lang.String sessionToken,
                                  java.lang.String targetServerID,
                                  java.lang.String clientIP)
SSO 토큰을 생성한다(스탠다드 버전).
SSO 토큰을 이용하여 특정한 권한이 있음을 나타내려 하거나, 사용자 데이터를 임의로 암호화하여 저장하는 등의 일을 수행할 때 makeToken()을 이용하여 토큰을 생성하여 사용할 수 있다. makeToken()을 이용하여 생성할 수 있는 토큰의 버전은 1, 2, 3, 21, 22, 23이 있다. 토큰 버전의 1(21), 2(22), 3(23)는 각각 토큰 생성시의 암호화 및 서명 방식을 나타내며 다음과 같이 구분된다. - 1(21) : 대칭키 암호화 및 토큰 생성 SSO Engine의 개인키로 서명 - 2(22) : 비대칭키 암호화 및 토큰 생성 SSO Engine의 개인키로 서명 - 3(23) : 대칭키 암호화 및 그룹의 공유키(ssotoken key)로 서명(HMAC) 생성된 토큰은 리턴값으로 넘겨주며, getToken() 메소드를 호출하여 받아가도 된다. SSO 객체를 생성하여 makeToken() 이나 makeSimpleToken(), verifyToken()을 호출한 다음에는, resetAllValues()를 호출하기 전까지 makeToken()을 호출하여 토큰을 생성할 수 없다. SSO 객체내에 사용자 ID나 사용자 데이터 등의 정보가 남아있기 때문에 예기치 않은 결과가 발생할 수 있기 때문이다.

Parameters:
version - 생성할 토큰의 버전, 1, 2, 3, 21, 22, 23을 지원한다. 1, 2, 3은 사용자 세션이 존재하는 상태에서 만들어 내는 토큰이며, 21, 22, 23은 사용자 세션과 상관없이 만들어내는 토큰이다.
sessionToken - regUserSession() 이나 authID() 등으로 생성한 사용사 세션 정보를 담고 있는 토큰. 스탠다드 버전에서는 regUserSession()를 사용하며 엔터프라이즈 버전에서는 authID()나 authDN()을 사용하여 생성된 토큰을 의미한다.
targetServerID - 생성된 토큰이 사용될 영역. SSO Engine/Agent의 서버ID 혹은 서버 그룹 ID를 나타낸다.
- 버전 1(21) : 서버 그룹 ID(SSO Engine/Agent의 keydb/ssotoken.key에 등록)
- 버전 2(22) : 서버 ID(sso_engine.conf에 등록된 LS의 아이디)이다.
- 버전 3(23) : 서버 그룹 ID(SSO Engine/Agent의 keydb/ssotoken.key에 등록)
clientIP - 토큰생성을 요청한 사용자의 IP 주소 (없거나 사용하지 않을 때는 null)

Returns:
SSO 토큰 생성에 성공하면 생성된 토큰을 리턴한다. SSO 토큰 생성에 실패하면 null 값을 넘겨주며 getLastError()메소드로 에러코드를 알 수 있다.
See Also:
makeToken( int, String, String)

verifyToken

public int verifyToken(java.lang.String token)
SSO 토큰을 검증한다.
자세한 내용은 verifyToken(String, String)를 참조한다.

Parameters:
token - 검증할 SSO 토큰 데이터

Returns:
SSO 토큰 검증에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.

See Also:
verifyToken(String, String)

verifyToken

public int verifyToken(java.lang.String token,
                       java.lang.String clientIP)
SSO 토큰을 검증한다.
SSO Engine/Agent에 요청하여 토큰의 유효성을 검사하고 암호화된 사용자ID나 사용자데이터 값을 복호화하여 넘겨준다. 유효성이 확인된 토큰의 사용자데이터는 getValue()를 이용하여, 사용자ID는 getValueUserID() 메소드를 이용하여 값을 얻을 수 있다. 사용자ID를 나타내는 "UID" 필드값을 이용하여 getValue("UID")를 호출하면 정상적인 반환값을 얻을 수 없으므로 반드시 getValueUserID()를 사용하도록 한다. makeSimpleToken(), makeToken(), regUserSession(), authID(), authDN() 등에서 생성된 모둔 토큰은 이 메소드를 이용하여 검증한다.

Parameters:
token - 검증할 SSO 토큰 데이터
clientIP - 사용자의 IP 주소(없거나 사용하지 않을 때는 null)

Returns:
SSO 토큰 검증에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.

See Also:
verifyToken(String)

regUserSession

public int regUserSession(java.lang.String userID,
                          java.lang.String clientIP,
                          boolean overwriteOption)
사용자 세션 정보를 만들고 정책 서버(Policy Server)에 등록한다(스탠다드 버전).
이 메소드는 인증 처리를 따로 처리하고 사용자 세션 정보만을 이용하는 스탠다드 버전의 SSO Engine/Agent와 함께 사용한다. 이 메소드를 사용하여 토큰을 만들고 세션을 등록하는 경우에는 적용하는 사이트의 독자적인 인증방법(ID/Password 확인, 생체 인식 등)으로 사용자 인증을 실시한후 사용자가 확인되면, 이 메소드를 이용하여 토큰을 생성하고 세션 정보를 Policy Server에 등록한다.

Parameters:
userID - 토큰 생성에 사용할 사용자의 ID
clientIP - 메소드를 호출한 사용자의 IP 주소
overwriteOption - 해당사용자에 대한 사용자 세션이 이미 존재할 경우 (이미 다른 클라이언트를 통하여 토큰을 생성해 있는 경우) 기존의 세션 데이터를 없애고 덮어쓸지, 기존의 세션 데이터를 유지하고 에러를 넘겨줄지를 결정하는 옵션 항목

Returns:
다음과 같은 값을 넘겨준다.
- 0 : 토큰 생성에 성공하고 새로 세션을 등록한 경우
- 1 : 기존 세션 데이터가 존재하는 상태에서 overwriteOption이 true일 때 토큰을 생성에 성공하고 세션 데이터를 덮어쓰기한 경우
- (음수값) : 토큰 생셩에 실패하고 에러가 발생한 경우

unregUserSession

public int unregUserSession(java.lang.String token)
사용자 세션 정보를 삭제한다(스탠다드 버전, 엔터프라이즈 버전).
regUserSession()이나 authID(), authDN()으로 생성한 사용자 세션 정보를 Policy Server에서 삭제하여 토큰을 유효하지 않은 상태로 만든다. 사용자의 로그아웃 처리에 사용한다.

Parameters:
token - 삭제할 사용자 세션의 SSO 토큰 데이터

Returns:
삭제 성공 여부. 삭제에 성공하면 0을 넘겨주고 실패하면 음수의 에러코드를 넘겨준다.

See Also:
unregUserSession(java.lang.String, java.lang.String)

unregUserSession

public int unregUserSession(java.lang.String token,
                            java.lang.String clientIP)
사용자 세션 정보를 삭제한다(스탠다드 버전).
regUserSession()이나 authID(), authDN()으로 생성한 사용자 세션 정보를 Policy Server에서 삭제하여 토큰을 유효하지 않은 상태로 만든다. 사용자의 로그아웃 처리에 사용한다.

Parameters:
token - 삭제할 사용자 세션의 SSO 토큰 데이터
clientIP - 삭제를 요청한 사용자의 IP 주소

Returns:
삭제 성공 여부. 삭제에 성공하면 0을 넘겨주고 실패하면 음수의 에러코드를 넘겨준다.

See Also:
unregUserSession(java.lang.String)

userAdd

public int userAdd(SsoAuthInfo authInfo)
새로운 사용자를 LDAP 서비스에 추가한다(엔터프라이즈 버전).
사용자 등록을 위해서는 많은 양의 정보를 제공해야 하므로 SsoAuthInfo 클래스를 이용하여 입력하고자 하는 항목의 값을 세팅하고 이 메소드의 매개변수로 제공한다.
SsoAuthInfo 클래스의 경우 엔터프라이즈 버전으로 동작시, 사용자 데이터를 Policy Server에 넘겨주거나 Policy Server로부터 넘겨받을 때 사용하기 위한 데이터 클래스이다.
사용자를 등록을 위한 정보는 필수적으로 입력해야 하는 정보와 경우에 따라 입력하는 (입력하지 않아도 되는) 정보로 구분된다.

필수로 입력해야 하는 정보는 다음과 같다.

- 사용자 아이디 : LDAP 서비스 내에서 사용자를 구분할 수 있는 값. 사번을 이용하기도 한다.
- 사용자명 : 사용자의 이름
- OUS 정보 : 사용자가 속한 구조 정보. 주로 사용자가 속한 부서나 소속을 '/'로 구분된 계층구조로 나타낸다.

옵션 항목으로 입력할 수 있는 정보는 다음과 같다.

- 비밀번호
- 주민등록번호 : 주민등록번호나 사번 등 일련의 식별번호를 위한 항목이다.
- 사설인증서의 DN
- 공인인증서의 DN
- E-Mail 주소
- 프로필 정보 : 기본 항목 외에 해당 사이트의 필요에 의해 추가해야할 사용자정의 데이터를 의미한다. 이 값을 넣을 때는 NVDS 형식의 데이터를 입력한다.

이 메소드를 사용하기 위해서는 반드시 API Key를 매개변수로 받는 생성자를 사용하여 SSO 객체를 생성해야 한다.

Parameters:
authInfo - 사용자 정보를 담기위한 클래스의 객체이다. 자세한 사용방법은 SsoAuthInfo 클래스를 참조한다.

Returns:
사용자 등록에 성공하면 0을 넘겨주고, 실패하면 음수의 에러 코드를 넘겨준다.

See Also:
SsoAuthInfo, userAdd(String, String, String)

userAdd

public int userAdd(java.lang.String userID,
                   java.lang.String name,
                   java.lang.String ous)
새로운 사용자 정보를 LDAP 서비스에 추가한다(엔터프라이즈 버전) .
자세한 사항은 userAdd(SsoAuthInfo)를 참조한다.

이 메소드는 필수 항목만을 이용하여 사용자를 추가한다. 옵션 항목까지 입력하기 위해서는 userAdd(SsoAuthInfo)를 사용한다. 이 메소드를 사용하기 위해서는 반드시 API Key를 매개변수로 받는 생성자를 사용하여 SSO 객체를 생성해야 한다.

Parameters:
userID - 사용자의 아이디. LDAP 서비스 내에서 사용자를 구분할 수 있는 값. 사번을 이용하기도 한다.
name - 사용자의 이름
ous - 사용자가 속한 구조 정보. 주로 사용자가 속한 부서나 소속을 '/'로 구분된 계층구조로 나타낸다.

Returns:
사용자 등록에 성공하면 0을 넘겨주고, 실패하면 음수의 에러 코드를 넘겨준다.

See Also:
userAdd(SsoAuthInfo)

userView

public SsoAuthInfo userView(java.lang.String token)
LDAP 서비스에 등록된 사용자의 정보를 얻어온다(엔터프라이즈 버전).
자세한 사항은 userView(String, String)를 참조한다.

Parameters:
token - 정보를 얻어오려는 사용자로 로그인되어 발급된 토큰 데이터. authID() 나 authDN() 으로 얻어온 토큰을 사용해야 사용자 정보를 얻어올 수 있다.

Returns:
사용자의 정보를 얻어온다. 자세한 사항은 SsoAuthInfo 클래스의 사용방법을 참조한다. 실패한 경우에는 null을 넘겨준다.
See Also:
SsoAuthInfo, userView(String, String)

userView

public SsoAuthInfo userView(java.lang.String token,
                            java.lang.String clientIP)
LDAP 서비스에 등록된 사용자의 정보를 얻어온다(엔터프라이즈 버전).
userView를 이용하면 LDAP에 등록된 사용자의 정보 중에서 사용자아이디, 사용자명, 주민등록번호, Email 주소, 프로파일 정보, 공인인증서 DN, 사설인증서 DN, 사용자가 속한 조직 등의 정보를 얻을 수 있다. (토큰과 패스워드 정보는 넘겨주지 않는다.)
다른 정보를 얻어오려면 관리자로서 Policy Manager를 이용하여 데이터를 확인하거나, LDAP 서비스에 직접 접근해야 한다.
SsoAuthInfo 클래스의 경우 엔터프라이즈 버전으로 동작시, 사용자 데이터를 Policy Server에 넘겨주거나 Policy Server로부터 넘겨받을 때 사용하기 위한 데이터 클래스이다. 자세한 내용은 SsoAuthInfo 클래스를 참조한다.

Parameters:
token - 정보를 얻어오려는 사용자로 로그인되어 발급된 토큰 데이터. authID() 나 authDN() 으로 얻어온 토큰을 사용해야 사용자 정보를 얻어올 수 있다.

clientIP - 사용자의 정보를 요청한 사용자의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
사용자의 정보를 얻어온다. 자세한 사항은 SsoAuthInfo 클래스의 사용방법을 참조한다. 실패한 경우에는 null을 넘겨준다.

See Also:
SsoAuthInfo

userModify

public int userModify(SsoAuthInfo authInfo,
                      java.lang.String clientIP)
LDAP 서비스에 등록된 사용자의 정보를 수정한다(엔터프라이즈 버전).
이 메소드는 입력값중 하나로 SSO 토큰값을 입력받으므로, 사용자가 본인의 정보를 수정하고자 할 때를 위해 사용되며, 관리자가 다른 사용자의 정보를 수정 혹은 갱신하기 위한 용도로는 사용할 수 없다. SsoAuthInfo 클래스의 객체를 생성하여 수정하려는 정보를 입력하고 이 객체를 이 메소드의 매개변수로 제공한다. 이 메소드를 사용할 때는 SsoAuthInfo 객체를 새로 생성하는 것이 좋다. 만약 기존에 생성된 객체를 재사용하려면, 그 객체를 재사용하기 전에 초기화해야 한다. SsoAuthInfo 클래스의 resetAuthInfo() 메소드를 사용하며 자세한 사용방법은 SsoAuthInfo 클래스를 참조한다. 이 메소드를 호출하기 위해서는 변경하려는 사용자가 발급받은 토큰이 SsoAuthInfo 객체에 설정되어 있어야 한다. 이 토큰은 authID() 나 authDN()을 이용하여 발급받을 수 있다. SsoAuthInfo 클래스에 입력된 사용자ID 값은 무시된다. 비밀번호 값도 무시되며 비밀번호를 변경하기 위해서는 userModifyPwd()를 사용한다.

Parameters:
authInfo - 수정하려는 사용자 정보가 들어있는 SsoAuthInfo 클래스의 객체
clientIP - 메소드를 호출한 클라이언트의 IP 주소. 없거나 사용하지 않을때는 null 값으로 설정한다.

Returns:
사용자 정보의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.

See Also:
SsoAuthInfo, userModifyPwd(java.lang.String, java.lang.String, java.lang.String)

userModifyPwd

public int userModifyPwd(java.lang.String token,
                         java.lang.String currentPassword,
                         java.lang.String newPassword)
LDAP 서비스에 등록된 사용자의 비밀번호를 변경한다(엔터프라이즈 버전).

Parameters:
token - 해당 사용자의 토큰. authID() 나 authDN() 으로 얻어온 토큰을 사용한다.
currentPassword - 현재의 비밀번호
newPassword - 변경하려는 비밀번호

Returns:
사용자 정보의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.
See Also:
userModifyPwd(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

userModifyPwd

public int userModifyPwd(java.lang.String token,
                         java.lang.String currentPassword,
                         java.lang.String newPassword,
                         java.lang.String clientIP)
LDAP 서비스에 등록된 사용자의 비밀번호를 변경한다(엔터프라이즈 버전).

Parameters:
token - 해당 사용자의 토큰. authID() 나 authDN() 으로 얻어온 토큰을 사용한다.
currentPassword - 현재의 비밀번호
newPassword - 변경하려는 비밀번호
clientIP - 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
사용자 정보의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.
See Also:
userModifyPwd(java.lang.String, java.lang.String, java.lang.String)

userPasswordInit

public int userPasswordInit(java.lang.String userID,
                            java.lang.String userPassword,
                            int nPasswordMustChangeFlag,
                            java.lang.String clientIP)
LDAP 서비스에 등록된 사용자의 비밀번호를 초기화한다(엔터프라이즈 버전).

Parameters:
userID - 비밀번호를 초기화할 사용자의 아이디.
userPassword - 초기화할 비밀번호.
nPasswordMustChangeFlag - PasswordMustChangeFlag 설정. 1이면 true, 0이면 false
clientIP - 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
사용자 정보의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.
See Also:
userModifyPwd(java.lang.String, java.lang.String, java.lang.String)

userDisable

public int userDisable(java.lang.String token,
                       java.lang.String password,
                       int reasonCode)
LDAP 서비스에 등록된 사용자를 '잠금상태'로 설정한다(엔터프라이즈 버전).
자세한 내용은 userDisable(String, String, int, String)를 참조한다.

Parameters:
token - '잠금상태'로 설정하려는 사용자의 토큰. authID() 나 authDN() 을 이용하여 발급받는다.
password - 사용자의 비밀번호
reasonCode - '잠금상태'로 설정하려는 이유를 나타내는 코드번호. 이 값은 사용자가 임의로 정의하여 사용한다.

Returns:
상태변경에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.

userDisable

public int userDisable(java.lang.String token,
                       java.lang.String password,
                       int reasonCode,
                       java.lang.String clientIP)
LDAP 서비스에 등록된 사용자를 '잠금상태'로 설정한다(엔터프라이즈 버전).
사용자가 특정한 이유로 인해 (출장, 이동, 퇴사 등) 사용할 수 없는 '잠금상태'로 설정될 필요가 있을 때 이 메소드를 사용한다. 한번 '잠금상태'로 설정되면 일반 사용자는 다시 이 상태를 정상으로 되돌릴 수 없으며, 관리자만이 이 것을 해제할 수 있다. 이 메소드는 자신의 상태를 변경할 때만 사용하며, 관리자가 사용자의 상태를 변경하는 용도로 사용할 수 없다.(사용자의 토큰을 매개변수로 제공할 수 없으므로)

Parameters:
token - '잠금상태'로 설정하려는 사용자의 토큰. authID() 나 authDN() 을 이용하여 발급받는다.
password - 사용자의 비밀번호
reasonCode - '잠금상태'로 설정하려는 이유를 나타내는 코드번호. 이 값은 사용자가 정의하여 사용한다.

Returns:
상태변경에 성공하면 0을 넘겨주고, 실패하면 에러코드를 넘겨준다.

userSearch

public int userSearch(java.lang.String userID)
해당 사용자가 존재하는지 LDAP 서비스를 검색한다(엔터프라이즈 버전).

이 메소드는 단지 사용자가 존재하는지 여부를 확인할 뿐, 사용자에 대한 어떠한 정보도 넘겨받지 않는다. 사용자 정보를 얻어오려면 userView()를 호출한다.

Parameters:
userID - 검색하려는 사용자의 아이디

Returns:
사용자가 존재하면 0을 넘겨준다. 존재하지 않으면 음수의 에러코드를 넘겨준다.
See Also:
userView(java.lang.String, java.lang.String)

authID

public SsoAuthInfo authID(java.lang.String userID,
                          boolean overwriteOption,
                          java.lang.String clientIP)
아이디를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
이 메소드를 호출하기 위해서는 반드시 SSO 객체를 생성할 때 API Key를 매개변수로 받는 생성자를 사용해야 한다.
이 메소드는 패스워드를 입력받지 않는 메소드로, LDAP 서비스의 설정상 패스워드를 검사하지 않게 되어 있는 경우 이 메소드를 이용하여 사용자 인증을 수행하고(사용자 세션을 생성) 토큰을 발급한다.

Parameters:
userID - 인증받으려는 사용자의 아이디
overwriteOption - 해당 사용자에 대한 세션 정보가 있을 경우 덮어쓰기 여부. 기존에 발급된 사용자 세션(SSO토큰)이 있을 때 true로 설정하면 사용자 세션과 토큰을 새로 발급하며, false로 되어 있을 경우 기존의 사용자 세션을 유지하고 에러를 반환한다.
clientIP - 사용자인증을 요청한 클라이언트의 IP 주소. 없거나 필요하지 않으면 null로 설정한다.

Returns:
발급받은 토큰과 사용자의 정보를 SsoAuthInfo 클래스에 설정하여 넘겨준다. 실패하면 null을 넘겨준다.

See Also:
SsoAuthInfo, authID(java.lang.String, java.lang.String, boolean, java.lang.String)

authID

public SsoAuthInfo authID(java.lang.String userID,
                          java.lang.String password,
                          boolean overwriteOption,
                          java.lang.String clientIP)
아이디&비밀번호를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
이 메소드를 호출하기 위해서는 반드시 SSO 객체를 생성할 때 API Key를 매개변수로 받는 생성자를 사용해야 한다.

Parameters:
userID - 인증받으려는 사용자의 아이디
password - 인증받으려는 사용자의 비밀번호. 비밀번호는 필수사항이 아니므로 시스템 구성에 따라 필요할 경우에만 설정한다. (비밀번호가 필요없는 경우 null로 설정한다.)
overwriteOption - 해당 사용자에 대한 세션 정보가 있을 경우 덮어쓰기 여부. 기존에 발급된 사용자 세션(SSO토큰)이 있을 때 true로 설정하면 사용자 세션과 토큰을 새로 발급하며, false로 되어 있을 경우 기존의 사용자 세션을 유지하고 에러를 반환한다.
clientIP - 사용자인증을 요청한 클라이언트의 IP 주소. 없거나 필요하지 않으면 null로 설정한다.

Returns:
발급받은 토큰과 사용자의 정보를 SsoAuthInfo 클래스에 설정하여 넘겨준다. 실패하면 null을 넘겨준다.

See Also:
SsoAuthInfo, authID(java.lang.String, boolean, java.lang.String)

authID2

public SsoAuthInfo authID2(java.lang.String userID,
                           java.lang.String userIDHash,
                           boolean overwriteOption,
                           java.lang.String clientIP)
아이디를 이용하여 LDAP 서비스에 등록된 사용자를 인증한다(엔터프라이즈 버전).
이 메소드를 호출하기 위해서는 반드시 SSO 객체를 생성할 때 API Key를 매개변수로 받는 생성자를 사용해야 한다.

이 메소드는 아이디만으로 인증을 수행하기 위해 사용자의 아이디와 사용자의 아이디를 HASH한 값을 패스워드로 사용하여 사용자 인증을 수행하고(사용자 세션을 생성) 토큰을 발급한다.

Parameters:
userID - 인증받으려는 사용자의 아이디
userIDHash - userID의 HASH 결과. HASH 알고리즘은 MD5를 사용한다.
overwriteOption - 해당 사용자에 대한 세션 정보가 있을 경우 덮어쓰기 여부. 기존에 발급된 사용자 세션(SSO토큰)이 있을 때 true로 설정하면 사용자 세션과 토큰을 새로 발급하며, false로 되어 있을 경우 기존의 사용자 세션을 유지하고 에러를 반환한다.
clientIP - 사용자인증을 요청한 클라이언트의 IP 주소. 없거나 필요하지 않으면 null로 설정한다.

Returns:
발급받은 토큰과 사용자의 정보를 SsoAuthInfo 클래스에 설정하여 넘겨준다. 실패하면 null을 넘겨준다.

See Also:
SsoAuthInfo, authID(java.lang.String, boolean, java.lang.String), authID(String, String, boolean, String)

authDN

public SsoAuthInfo authDN(java.lang.String dn,
                          boolean overwriteOption,
                          java.lang.String clientIP)
인증서의 DN을 이용하여 LDAP 서비스에 등록된 사용자를 인증받는다(엔터프라이즈 버전).

이 메소드는 패스워드를 입력받지 않는 메소드로, LDAP 서비스의 설정상 패스워드를 검사하지 않게 되어 있는 경우 이 메소드를 이용하여 사용자 인증을 수행하고(사용자 세션을 생성) 토큰을 발급한다.

Parameters:
dn - 인증받으려는 사용자의 인증서 DN값
overwriteOption - 해당 사용자에 대한 세션 정보가 있을 경우 덮어쓰기 여부. 기존에 발급된 사용자 세션(SSO토큰)이 있을 때 true로 설정하면 사용자 세션과 토큰을 새로 발급하며, false로 되어 있을 경우 기존의 사용자 세션을 유지하고 에러를 반환한다.
clientIP - 사용자인증을 요청한 클라이언트의 IP 주소. 없거나 필요하지 않으면 null로 설정한다.

Returns:
발급받은 토큰과 사용자의 정보를 SsoAuthInfo 클래스에 설정하여 넘겨준다. 실패하면 null을 넘겨준다.

See Also:
SsoAuthInfo, authDN(java.lang.String, java.lang.String, boolean, java.lang.String)

authDN

public SsoAuthInfo authDN(java.lang.String dn,
                          java.lang.String password,
                          boolean overwriteOption,
                          java.lang.String clientIP)
인증서의 DN을 이용하여 LDAP 서비스에 등록된 사용자를 인증받는다(엔터프라이즈 버전).

Parameters:
dn - 인증받으려는 사용자의 아이디
password - 인증받으려는 사용자의 비밀번호. 비밀번호는 필수사항이 아니므로 시스템 구성에 따라 필요할 경우에만 설정한다.
overwriteOption - 해당 사용자에 대한 세션 정보가 있을 경우 덮어쓰기 여부. 기존에 발급된 사용자 세션(SSO토큰)이 있을 때 true로 설정하면 사용자 세션과 토큰을 새로 발급하며, false로 되어 있을 경우 기존의 사용자 세션을 유지하고 에러를 반환한다.
clientIP - 사용자인증을 요청한 클라이언트의 IP 주소. 없거나 필요하지 않으면 null로 설정한다.

Returns:
발급받은 토큰과 사용자의 정보를 SsoAuthInfo 클래스에 설정하여 넘겨준다. 실패하면 null을 넘겨준다.

See Also:
SsoAuthInfo, authDN(java.lang.String, java.lang.String, boolean, java.lang.String)

getPermission

public java.lang.String getPermission(java.lang.String srdn)
익명의 사용자가 가진 권한을 검색한다(엔터프라이즈 버전).
이 메소드를 이용하여 익명의 사용자가 해당 서비스 자원을 이용할 권한이 있는지 없는지, 있으면 어떤 권한을 가지고 있는지를 검색할 수 있다.

Parameters:
srdn - 이용할 수 있는 서비스 자원 구분명.

Returns:
사용자가 가진 권한을 각 권한을 나타내는 문자의 조합으로 넘겨준다. 사용자가 가진 권한이 없는 경우 null을 넘겨준다.
See Also:
getPermission(java.lang.String, java.lang.String, java.lang.String)

getPermission

public java.lang.String getPermission(java.lang.String srdn,
                                      java.lang.String token,
                                      java.lang.String clientIP)
사용자가 가진 권한을 검색한다(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 해당 서비스 자원을 이용할 권한이 있는지 없는지, 있으면 어떤 권한을 가지고 있는지를 검색할 수 있다.

Parameters:
srdn - 이용할 수 있는 서비스 자원 구분명.
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.

Returns:
사용자가 가진 권한을 각 권한을 나타내는 문자의 조합으로 넘겨준다. 사용자가 가진 권한이 없는 경우 null을 넘겨준다.
See Also:
getPermission(java.lang.String)

getPermission

public java.lang.String getPermission(java.lang.String srdn,
                                      java.lang.String token,
                                      java.lang.String clientIP,
                                      boolean bRoleSearch)
사용자가 가진 권한을 검색한다(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 해당 서비스 자원을 이용할 권한이 있는지 없는지, 있으면 어떤 권한을 가지고 있는지를 검색할 수 있다.

Parameters:
srdn - 이용할 수 있는 서비스 자원 구분명.
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
bRoleSearch - role검색 여부. true면 검색, false면 검색안함으로 한다.

Returns:
사용자가 가진 권한을 각 권한을 나타내는 문자의 조합으로 넘겨준다. 사용자가 가진 권한이 없는 경우 null을 넘겨준다.
See Also:
getPermission(java.lang.String)

getResourcePermission

public java.lang.String getResourcePermission(java.lang.String srdn,
                                              java.lang.String token,
                                              java.lang.String clientIP,
                                              boolean bRoleSearch)
사용자가 가진 권한을 검색한다(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 해당 서비스 자원을 이용할 권한이 있는지 없는지, 있으면 어떤 권한을 가지고 있는지를 검색할 수 있다.

Parameters:
srdn - 이용할 수 있는 서비스 자원 구분명.
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
bRoleSearch - role검색 여부. true면 검색, false면 검색안함으로 한다.

Returns:
사용자가 가진 권한을 각 권한을 나타내는 문자의 조합으로 넘겨준다. 사용자가 가진 권한이 없는 경우 null을 넘겨준다.
See Also:
getPermission(java.lang.String, java.lang.String, java.lang.String, boolean)

setDSDRoleList

public java.lang.String setDSDRoleList(java.lang.String[] DSDRoleList,
                                       java.lang.String token,
                                       java.lang.String clientIP)
사용자가 선택한 DSD Role을 Token에 설정한다.(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 선택한 DSD Role을 포함하는 새로운 토큰을 발급받을 수 있다.

Parameters:
DSDRoleList - 사용자가 선택한 DSD Role 리스트 배열. {"DSD이름$ROLE아이디", ...}
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
Returns:
사용자가 선택한 DSD Role을 포함하는 새로운 토큰을 넘겨준다.

getUserRoleList

public java.lang.String[] getUserRoleList(java.lang.String token,
                                          java.lang.String clientIP)
사용자에 할당된 모든 Role 리스트를 반환한다.(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자에 할당된 Role 리스트를 반환받을 수 있다.

Parameters:
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
Returns:
사용자에 할당된 모든 Role 리스트를 반환한다.
See Also:
getUserRoleList(java.lang.String, java.lang.String)

getDSDRoleList

public java.lang.String getDSDRoleList(java.lang.String token,
                                       java.lang.String clientIP)
사용자가 할당된 Role 기준으로 선택가능한 모든 DSD 리스트를 반환한다.(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 선택할 수 있는 DSD 리스트를 반환받을 수 있다.
DSD의 Role리스트에 사용자가 할당된 Role이 한개 미만인 경우 반환하지 않는다.

Parameters:
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
Returns:
사용자가 선택할 수 있는 DSD 리스트를 넘겨준다.
- 형식 : DSD이름-Role아이디,Role아이디...*DSD이름-Role아이디,Role아이디....
See Also:
getDSDRoleList(java.lang.String, java.lang.String)

getDynamicPermission

public java.lang.String getDynamicPermission(java.lang.String srdn,
                                             java.lang.String token,
                                             java.lang.String clientIP,
                                             java.lang.String orgID)
사용자가 가진 권한을 검색한다(엔터프라이즈 버전).

이 메소드를 이용하여 특정 사용자가 해당 서비스 자원을 이용할 권한이 있는지 없는지, 있으면 어떤 권한을 가지고 있는지를 검색할 수 있다.

Parameters:
srdn - 이용할 수 있는 서비스 자원 구분명.
token - 권한을 검증하려는 사용자의 토큰. authID() 나 authDN() 으로 발급받은 토큰을 사용한다.
clientIP - 권한 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null 로 설정한다.
orgID - 사용자가 로그인시에 선택한 부서의 ID

Returns:
사용자가 가진 권한을 각 권한을 나타내는 문자의 조합으로 넘겨준다. 사용자가 가진 권한이 없는 경우 null을 넘겨준다.
See Also:
getPermission(java.lang.String)

getServiceList

public java.lang.String getServiceList(java.lang.String sBase,
                                       java.lang.String scope)
익명의 사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).

Parameters:
sBase - 사용할 수 있는 자원의 기본 주소
scope - 자원의 목록을 검색할 범위를 지정한다. 해당 기본 주소에 대해서만 검색을 진행하려면 "ONE"으로 설정하고, 해당 기본 주소의 하위 구조를 모두 검색하려면 "SUB"로 설정한다.

Returns:
익명의 사용자가 사용할 수 있는 자원의 목록. 권한이 없거나 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.

getServiceList

public java.lang.String getServiceList(java.lang.String sBase,
                                       java.lang.String scope,
                                       java.lang.String token,
                                       java.lang.String permission,
                                       java.lang.String clientIP)
사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).

Parameters:
sBase - 사용할 수 있는 자원의 기본 주소
scope - 자원의 목록을 검색할 범위를 지정한다. 해당 기본 주소에 대해서만 검색을 진행하려면 "ONE"으로 설정하고, 해당 기본 주소의 하위 구조를 모두 검색하려면 "SUB"로 설정한다.
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
permission - 검색하려는 권한. 권한에 대한 문자를 조합한 문자열로 설정한다.
clientIP - 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
해당 사용자가 사용할 수 있는 자원의 목록. 권한이 없거나 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.

getServiceList

public java.lang.String getServiceList(java.lang.String sBase,
                                       java.lang.String scope,
                                       java.lang.String token,
                                       java.lang.String permission,
                                       java.lang.String clientIP,
                                       boolean bRole)
사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).

Parameters:
sBase - 사용할 수 있는 자원의 기본 주소
scope - 자원의 목록을 검색할 범위를 지정한다. 해당 기본 주소에 대해서만 검색을 진행하려면 "ONE"으로 설정하고, 해당 기본 주소의 하위 구조를 모두 검색하려면 "SUB"로 설정한다.
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
permission - 검색하려는 권한. 권한에 대한 문자를 조합한 문자열로 설정한다.
clientIP - 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
해당 사용자가 사용할 수 있는 자원의 목록. 권한이 없거나 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.

getResourceList

public java.lang.String getResourceList(java.lang.String sBase,
                                        java.lang.String scope,
                                        java.lang.String token,
                                        java.lang.String permission,
                                        java.lang.String clientIP,
                                        boolean bRoleSearch)
사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).

Parameters:
sBase - 사용할 수 있는 자원의 기본 주소
scope - 자원의 목록을 검색할 범위를 지정한다. 해당 기본 주소에 대해서만 검색을 진행하려면 "ONE"으로 설정하고, 해당 기본 주소의 하위 구조를 모두 검색하려면 "SUB"로 설정한다.
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
permission - 검색하려는 권한. 권한에 대한 문자를 조합한 문자열로 설정한다.
clientIP - 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.
bRoleSearch - role검색 여부. true면 검색, false면 검색안함으로 한다.

Returns:
해당 사용자가 사용할 수 있는 자원의 목록. 권한이 없거나 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.

getServiceListOption

public java.lang.String getServiceListOption(java.lang.String sBase,
                                             java.lang.String scope,
                                             java.lang.String token,
                                             java.lang.String permission,
                                             java.lang.String clientIP,
                                             int nOption)
사용자가 사용할 수 있는 자원의 목록을 검색한다(엔터프라이즈 버전).

Parameters:
sBase - 사용할 수 있는 자원의 기본 주소
scope - 자원의 목록을 검색할 범위를 지정한다. 해당 기본 주소에 대해서만 검색을 진행하려면 "ONE"으로 설정하고, 해당 기본 주소의 하위 구조를 모두 검색하려면 "SUB"로 설정한다.
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
permission - 검색하려는 권한. 권한에 대한 문자를 조합한 문자열로 설정한다.
clientIP - 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.
nOption - 0~4
0 : 전체 권한 리스트 (ID,NAME,PMS,SID,SNAME,SPMS)
1 : ID,PMS
2 : SID,SPMS
3 : ID,NAME,PMS
4 : SID,SNAME,SPMS
Returns:
해당 사용자가 사용할 수 있는 자원의 목록. 권한이 없거나 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.

getServiceList_OrderByID

public java.lang.String getServiceList_OrderByID(java.lang.String sBase,
                                                 java.lang.String scope,
                                                 java.lang.String token,
                                                 java.lang.String permission,
                                                 java.lang.String clientIP)

SortList

public java.lang.String SortList(java.lang.String serviceList)

getGroupIDList

public java.lang.String getGroupIDList(java.lang.String token)
사용자가 속해있는 그룹의 ID 목록을 검색한다(엔터프라이즈 버전).

Parameters:
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
Returns:
해당 사용자가 속해있는 그룹의 ID 목록. 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.
See Also:
GetGroupIDList(java.lang.String, java.lang.String)

getGroupIDList

public java.lang.String getGroupIDList(java.lang.String token,
                                       java.lang.String clientIP)
사용자가 속해있는 그룹의 ID 목록을 검색한다(엔터프라이즈 버전).

Parameters:
token - 검색하려는 사용자의 정보로 발급받은 토큰. authID() 나 authDN() 으로 발급받는다.
clientIP - 검색을 요청한 클라이언트의 IP 주소. 없거나 사용하지 않으면 null로 설정한다.

Returns:
해당 사용자가 속해있는 그룹의 ID 목록. 에러가 발생하면 null을 넘겨주며 getLastError()로 에러코드를 알 수 있다.
See Also:
GetGroupIDList(java.lang.String)

getToken

public java.lang.String getToken()
실제 생성된 토큰값(String)을 리턴한다.
makeToken(), makeSimpleToken() 등의 메소드를 호출한 후에 사용한다.

Returns:
토큰이 생성된 상태면 SSO 토큰 데이터를 넘겨주고, 토큰이 생성되지 않은 상태이면 null을 넘겨준다.

getValueUserID

public java.lang.String getValueUserID()
사용자 데이터 값에서 사용자 아이디(UID)값을 조회한다.
이 메소드는 사용자정의 데이터영역에서 검색을 수행한다.
이 메소드는 verifyToken()을 호출한 다음에 사용하여야 유효한 값을 얻을 수 있다.

Returns:
사용자 아이디에 해당하는 첫번째 사용자 데이터 값을 넘겨준다. getValue( "UID", 0 ) 메소드와 동일하다. tagName에 해당되는 값이 없거나 에러일 때는 null을 넘겨준다.

getValueCLT

public java.lang.String getValueCLT()
CLT 값을 참조하기 위한 메소드이다.
verifyToken()을 호출한 다음에 사용한다.

Returns:
CLT값이 존재하면 CLT 값을 년:월:일-시:분:초의 형태로 넘겨주며, 존재하지 않으면 null을 넘겨준다.

getIndex

public int getIndex(java.lang.String source,
                    java.lang.String tag,
                    java.lang.String value)
주어진 태그이름-데이터 쌍을 찾아 해당 태그이름에서의 인덱스 값을 넘겨준다.
source 문자열 내에서 tag 태그명을 갖는 값들을 찾는다. tag 태그명을 갖는 이름-값 쌍을 검사하여 그 값이 value 매개변수와 같은 값이면 그 이름-값 쌍의 인덱스 값을 구하여 사용자에게 넘겨준다. 이 메소드는 이름-값 쌍이 복수로 넘어오는 다중 필드 데이터에서 적절한 필드의 인덱스를 찾기 위해 사용된다.

Parameters:
source - 인덱스를 찾고자 하는 원본 데이터
tag - 검색의 키가 되는 태그의 태그명
value - 검색의 키가 되는 태그의 데이터 값

Returns:
찾고자 하는 이름-값 데이터 필드의 인덱스 값. 검색에 실패하면 -1을 넘겨준다.

getIndex

public int getIndex(java.lang.String tag,
                    java.lang.String value)

getAllValues

public java.lang.String getAllValues()
사용자정의 데이터영역에 저장된 전체 데이터를 넘겨준다.
verifyToken(), putValue()메소드 등으로 생성된 사용자 데이터 값을 조회한다. 리턴값은 인코딩되어 있지 않으므로 디버깅 목적으로만 사용해야 한다.

Returns:
현재 버퍼에 저장된 사용자 데이터 값을 넘겨준다. 저장된 값이 없으면 null을 넘겨준다.

getValue

public java.lang.String getValue(java.lang.String tagName)
사용자 데이터 값에서 특정 태그의 값을 조회한다.
태그명은 대문자로 일괄 변환되어 검색된다. 이 메소드를 사용하면 특정 태그 값을 갖는 데이터중 최초로 발견된 값을 넘겨준다. 이 메소드는 SSO 토큰 데이터와 사용자정의 데이터영역에서 검색을 수행한다.

Parameters:
tagName - 값을 찾으려는 태그명

Returns:
특정 태그에 해당하는 최초의 사용자 데이터 값을 넘겨준다. tagName에 해당되는 값이 없거나 에러일 때는 null 값을 넘겨준다.

getValue

public java.lang.String getValue(java.lang.String tagName,
                                 int index)
사용자 데이터 값에서 특정 태그 값을 조회한다.
태그명은 대문자로 일괄 변환되어 검색된다.이 메소드는 SSO 토큰 데이터와 사용자 정의 데이터 영역에서 검색을 수행한다.

Parameters:
tagName - 태그명
index - 인덱스(0 이상의 값)

Returns:
태그에 해당하는 index 번째 사용자 데이터 값을 넘겨준다. tagName에 해당되는 값이 없거나 에러일 때는 null을 넘겨준다.

getValueUsingHashTable

public java.util.Hashtable getValueUsingHashTable()

putValueUsingHashTable

public void putValueUsingHashTable(java.util.Hashtable table)

putValue

public int putValue(java.lang.String tagName,
                    java.lang.String tagValue)
사용자정의 데이터영역에 데이터를 추가한다.
태그명은 대문자로 일괄 변환된다. 이미 같은 태그 값이 있을 때는 객체의 appendMode에 따라 추가하거나 덮어쓴다. (appendMode가 false 일때 덮어쓴다.) 추가 적용된 값은 getValue()메소드로 조회할 수 있으며, makeToken() 메소드로 토큰을 만들 때 포함된다.

Parameters:
tagName - 태그명
tagValue - 태그값

Returns:
성공이면 0을, 아니면 음수의 에러 코드를 리턴한다.

resetAllValues

public void resetAllValues()
사용자 데이터값을 모두 초기화한다.
내부의 사용자정의 데이터영역, token, CLT 값을 null로 설정하고 SSO토큰을 만들수 있는 상태로 초기화한다.


getVersion

public java.lang.String getVersion()
SSO 클래스의 버젼을 알려준다.

Returns:
SSO API 클래스의 버전. 예를 들어 "2.0.0" 등의 형식으로 넘겨준다.

printVersion

public void printVersion()
SSO 클래스의 버젼을 표준 출력으로 보여준다.


getLastError

public int getLastError()
가장 최근의 에러 코드를 리턴한다.
정수형(int)의 리턴값을 갖지 않는 메소드를 실행했을 때 내부적으로 발생한 에러 코드를 저장하고 있다가 이 메소드를 호출하면 그 에러 코드를 넘겨준다.

Returns:
객체에서 마지막으로 발생한 에러 코드. 한번 이상 호출하면 두번째 호출부터 무조건 0을 넘겨주므로 주의해야 한다.

getLastErrorMsg

public java.lang.String getLastErrorMsg()
내부적으로 발생한 가장 최근의 에러 메시지를 리턴한다.
에러 메시지는 개발자를 위한 디버깅 용도로만 사용하는 것이 좋다.

Returns:
객체에서 마지막으로 발생한 에러 코드. 한번 이상 호출하면 두번째 호출부터 무조건 null을 넘겨주므로 주의해야 한다.

setPortNumber

public void setPortNumber(int portNumber)
SSO 엔진의 포트번호를 지정된 값으로 변경한다.
디버깅 모드에서만 사용할 수 있다.

Parameters:
portNumber - 변경하려는 포트번호

setHostName

public void setHostName(java.lang.String hostName)
SSO 엔진의 호스트명을 지정된 값으로 변경한다.
디버깅 모드에서만 사용할 수 있다.

Parameters:
hostName - 변경하려는 호스트명

setAppendMode

public void setAppendMode(boolean bAppendMode)
Append Mode를 설정한다.
Append Mode 는 기존의 데이터가 존재할 때 처리하는 방식(덮어쓰거나 추가한다)을 나타낸다.

Parameters:
bAppendMode - boolean 타입의 AppendMode

getAppendMode

public boolean getAppendMode()
Append Mode(bAppendMode)를 넘겨준다.


createUserData

public int createUserData(java.lang.String token,
                          java.util.Hashtable userData)
새로운 사용자데이터를 PS에 생성하거나 갱신한다.
이 메소드를 사용하면 저장된 데이터의 유무에 관계없이 사용자데이터를 새로 저장하므로 사용에 주의한다.

Parameters:
token - 데이터를 저장하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
userData - 추가하려는 사용자 데이터.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

createUserData

public int createUserData(java.lang.String token,
                          java.util.Hashtable userData,
                          java.lang.String clientIp)
새로운 사용자데이터를 PS에 생성하거나 갱신한다.
이 메소드를 사용하면 저장된 데이터의 유무에 관계없이 사용자데이터를 새로 저장하므로 사용에 주의한다.

Parameters:
token - 데이터를 저장하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
userData - 추가하려는 사용자 데이터.
clientIp - 사용자데이터를 추가하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

createUserData

public int createUserData(java.lang.String token,
                          java.lang.String userData)
새로운 사용자데이터를 PS에 생성하거나 갱신한다.
이 메소드를 사용하면 저장된 데이터의 유무에 관계없이 사용자데이터를 새로 저장하므로 사용에 주의한다.

Parameters:
token - 데이터를 저장하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
userData - 추가하려는 사용자 데이터. String 타입은 NVDS 형식으로 된 문자열을 사용한다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

createUserData

public int createUserData(java.lang.String token,
                          java.lang.String userData,
                          java.lang.String clientIp)
새로운 사용자데이터를 PS에 생성하거나 갱신한다.
이 메소드를 사용하면 저장된 데이터의 유무에 관계없이 사용자데이터를 새로 저장하므로 사용에 주의한다.

Parameters:
token - 데이터를 저장하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
userData - 추가하려는 사용자 데이터. String 타입은 NVDS 형식으로 된 문자열을 사용한다.
clientIp - 사용자데이터를 추가하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

deleteUserData

public int deleteUserData(java.lang.String token)
사용자데이터를 PS에서 삭제한다.

Parameters:
token - 데이터를 삭제하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

deleteUserData

public int deleteUserData(java.lang.String token,
                          java.lang.String clientIp)
사용자데이터를 PS에서 삭제한다.

Parameters:
token - 데이터를 삭제하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
clientIp - 삭제하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserDataHashtable

public java.util.Hashtable getUserDataHashtable(java.lang.String token)
PS에서 사용자데이터를 가져온다.
NVDS 형식으로 가져올 때는 getUserData를 호출하고 Hashtable 형식으로 가져오고 싶으면 getUserDataHashtable 을 호출한다.

Parameters:
token - 데이터를 가져오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserDataHashtable

public java.util.Hashtable getUserDataHashtable(java.lang.String token,
                                                java.lang.String clientIp)
PS에서 사용자데이터를 가져온다.
NVDS 형식으로 가져올 때는 getUserData를 호출하고 Hashtable 형식으로 가져오고 싶으면 getUserDataHashtable 을 호출한다.

Parameters:
token - 데이터를 가져오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
clientIp - 사용자데이터를 가져오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserData

public java.lang.String getUserData(java.lang.String token)
PS에서 사용자데이터를 가져온다.
NVDS 형식으로 가져올 때는 getUserData를 호출하고 Hashtable 형식으로 가져오고 싶으면 getUserDataHashtable 을 호출한다.

Parameters:
token - 데이터를 가져오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserData

public java.lang.String getUserData(java.lang.String token,
                                    java.lang.String clientIp)
PS에서 사용자데이터를 가져온다.
NVDS 형식으로 가져올 때는 getUserData를 호출하고 Hashtable 형식으로 가져오고 싶으면 getUserDataHashtable 을 호출한다.

Parameters:
token - 데이터를 가져오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
clientIp - 사용자데이터를 가져오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

updateUserData

public int updateUserData(java.lang.String token,
                          java.util.Hashtable userData)

updateUserData

public int updateUserData(java.lang.String token,
                          java.util.Hashtable userData,
                          java.lang.String clientIp)

updateUserData

public int updateUserData(java.lang.String token,
                          java.lang.String userData)

updateUserData

public int updateUserData(java.lang.String token,
                          java.lang.String userData,
                          java.lang.String clientIp)

addUserDataTag

public int addUserDataTag(java.lang.String token,
                          java.lang.String tagName,
                          java.lang.String tagValue)
사용자데이터에 하나의 필드 데이터를 더하는 메소드이다.
이 메소드를 사용할 때 사용자데이터는 반드시 NVDS 형식으로 다루어지며, PS에는 tagName-tagValue* 형식으로 저장된다.

Parameters:
token - 데이터를 추가하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 추가하려는 필드의 이름
tagValue - 추가하려는 필드의 데이터
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

addUserDataTag

public int addUserDataTag(java.lang.String token,
                          java.lang.String tagName,
                          java.lang.String tagValue,
                          java.lang.String clientIp)
사용자데이터에 하나의 필드 데이터를 더하는 메소드이다.
이 메소드를 사용할 때 사용자데이터는 반드시 NVDS 형식으로 다루어지며, PS에는 tagName-tagValue* 형식으로 저장된다.

Parameters:
token - 데이터를 추가하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 추가하려는 필드의 이름
tagValue - 추가하려는 필드의 데이터
clientIp - 사용자데이터를 추가하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

deleteUserDataTag

public int deleteUserDataTag(java.lang.String token,
                             java.lang.String tagName)
사용자데이터의 필드 하나를 삭제하는 메소드이다.
PS에 저정된 사용자 데이터를 검색하여 해당 필드를 삭제한다. 삭제에 실패하면 음수의 에러코드를 반환한다.

Parameters:
token - 데이터를 삭제하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 삭제하려는 필드의 이름
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

deleteUserDataTag

public int deleteUserDataTag(java.lang.String token,
                             java.lang.String tagName,
                             java.lang.String clientIp)
사용자데이터의 필드 하나를 삭제하는 메소드이다.
PS에 저정된 사용자 데이터를 검색하여 해당 필드를 삭제한다. 삭제에 실패하면 음수의 에러코드를 반환한다.

Parameters:
token - 데이터를 삭제하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 삭제하려는 필드의 이름
clientIp - 사용자데이터를 삭제하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserDataTag

public java.lang.String getUserDataTag(java.lang.String token,
                                       java.lang.String tagName)
사용자데이터를 필드 단위로 얻어온다.
찾는 tagName이 없는 경우에 null을 반환하며, getLastError 메소드를 호출하여 해당 에러코드를 얻을 수 있다.

Parameters:
token - 데이터를 얻어오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 얻어오려는 필드의 이름
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getUserDataTag

public java.lang.String getUserDataTag(java.lang.String token,
                                       java.lang.String tagName,
                                       java.lang.String clientIp)
사용자데이터를 필드 단위로 얻어온다.
찾는 tagName이 없는 경우에 null을 반환하며, getLastError 메소드를 호출하여 해당 에러코드를 얻을 수 있다.

Parameters:
token - 데이터를 얻어오려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 얻어오려는 필드의 이름
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

updateUserDataTag

public int updateUserDataTag(java.lang.String token,
                             java.lang.String tagName,
                             java.lang.String tagValue,
                             boolean overwriteFlag)
사용자데이터를 필드 단위로 갱신한다.

Parameters:
token - 데이터를 업데이트하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 업데이트하려는 필드의 이름
tagValue - 업데이트하려는 필드의 데이터
overwriteFlag - 덮어쓰기 여부를 나타내는 플래그값으로, true이면 사용자데이터가 존재해도 데이터를 갱신하며, false면 에러코드를 리턴하고 갱신하지 않는다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

updateUserDataTag

public int updateUserDataTag(java.lang.String token,
                             java.lang.String tagName,
                             java.lang.String tagValue,
                             boolean overwriteFlag,
                             java.lang.String clientIp)
사용자데이터를 필드 단위로 갱신한다.

Parameters:
token - 데이터를 업데이트하려는 사용자의 token이다 regUserSession으로 얻은 세션토큰이나 makeToken으로 얻은 토큰을 사용한다. (일반적으로 세션토큰을 사용한다.)
tagName - 업데이트하려는 필드의 이름
tagValue - 업데이트하려는 필드의 데이터
overwriteFlag - 덮어쓰기 여부를 나타내는 플래그값으로, true이면 사용자데이터가 존재해도 데이터를 갱신하며, false면 에러코드를 리턴하고 갱신하지 않는다.
clientIp - 사용자데이터를 업데이트하려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 0을 넘겨주며, 실패하면 음수의 에러 코드를 넘겨준다.

getServiceTree

public java.lang.String getServiceTree(java.lang.String token,
                                       java.lang.String serviceID)
사용자가 사용가능한 서비스 프로파일과 서비스 구조 프로파일의 목록(Service Tree)를 가져온다.
하나의 서비스 구조에 속해 있는 서비스와 서비스 구조(서비스들의 집합)의 목록을 가져온다.
최상위 서비스에 대한 목록을 가져올 때는 'toorecivres' 라는 값을 서비스 ID에 입력한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 서비스목록을 가져오기 위한 서비스구조 ID
Returns:
성공하면 서비스트리를 넘겨주며, 실패하면 null을 넘겨준다.


getServiceTree

public java.lang.String getServiceTree(java.lang.String token,
                                       java.lang.String serviceID,
                                       java.lang.String clientIp)
사용자가 사용가능한 서비스 프로파일과 서비스 구조 프로파일의 목록(Service Tree)를 가져온다.
하나의 서비스 구조에 속해 있는 서비스와 서비스 구조(서비스들의 집합)의 목록을 가져온다.
최상위 서비스에 대한 목록을 가져올 때는 'toorecivres' 라는 값을 서비스 ID에 입력한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 서비스목록을 가져오기 위한 서비스구조 ID
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 서비스트리를 넘겨주며, 실패하면 null을 넘겨준다.


getAccountProfile

public java.lang.String getAccountProfile(java.lang.String token,
                                          java.lang.String serviceID)
저장된 사용자 계정 프로파일(Account Profile)을 가져온다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 가져올 계정 프로파일과 연결된 서비스 프로파일의 ID
Returns:
함수 실행에 성공하면 NVDS 형식의 사용자 계정 프로파일 정보를 넘겨주고, 실패하면 null을 넘겨준다.


getAccountProfile

public java.lang.String getAccountProfile(java.lang.String token,
                                          java.lang.String serviceID,
                                          java.lang.String clientIp)
저장된 사용자 계정 프로파일(Account Profile)을 가져온다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 가져올 계정 프로파일과 연결된 서비스 프로파일의 ID
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
함수 실행에 성공하면 NVDS 형식의 사용자 계정 프로파일 정보를 넘겨주고, 실패하면 null을 넘겨준다.


modifyAccountPassword

public int modifyAccountPassword(java.lang.String token,
                                 java.lang.String serviceID,
                                 java.lang.String password,
                                 java.lang.String newPassword)
사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 수정한다.
저장된 사용자의 계정 프로파일의 비밀번호 값을 수정한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 수정하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
password - 기존 계정 프로파일의 비밀번호 값
newPassword - 수정하려는 계정 프로파일의 비밀번호 값
Returns:
계정 프로파일의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


modifyAccountPassword

public int modifyAccountPassword(java.lang.String token,
                                 java.lang.String serviceID,
                                 java.lang.String password,
                                 java.lang.String newPassword,
                                 java.lang.String clientIp)
사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 수정한다.
저장된 사용자의 계정 프로파일의 비밀번호 값을 수정한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 수정하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
password - 기존 계정 프로파일의 비밀번호 값
newPassword - 수정하려는 계정 프로파일의 비밀번호 값
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
계정 프로파일의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


modifyAccountPasswordInit

public int modifyAccountPasswordInit(java.lang.String userID,
                                     java.lang.String serviceID,
                                     java.lang.String newPassword,
                                     java.lang.String clientIp)
사용자의 계정 프로파일(Account Profile)의 비밀번호 값을 초기화한다.
저장된 사용자의 계정 프로파일의 비밀번호 값을 초기화한다.

Parameters:
userID - 수정하려는 계정 프로파일의 사용자 아이디
serviceID - 수정하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
newPassword - 초기화하려는 계정 프로파일의 비밀번호 값
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
계정 프로파일의 패스워드 초기화에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


modifyAccountID

public int modifyAccountID(java.lang.String token,
                           java.lang.String serviceID,
                           java.lang.String userID,
                           java.lang.String password)
사용자의 계정 프로파일(Account Profile)의 사용자 ID 값을 수정한다.
저장된 사용자의 계정 프로파일의 사용자 ID 값을 수정한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 수정하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
userID - 수정하려는 계정 프로파일의 사용자 아이디
password - 기존 계정 프로파일의 비밀번호 값
Returns:
계정 프로파일의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


modifyAccountID

public int modifyAccountID(java.lang.String token,
                           java.lang.String serviceID,
                           java.lang.String userID,
                           java.lang.String password,
                           java.lang.String clientIp)
사용자의 계정 프로파일(Account Profile)의 사용자 ID 값을 수정한다.
저장된 사용자의 계정 프로파일의 사용자 ID 값을 수정한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 수정하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
userID - 수정하려는 계정 프로파일의 사용자 아이디
password - 기존 계정 프로파일의 비밀번호 값
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
계정 프로파일의 수정에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


addAccountProfile

public int addAccountProfile(java.lang.String token,
                             java.lang.String serviceID,
                             java.lang.String userID,
                             java.lang.String password)
사용자 계정 프로파일(Account Profile)을 추가한다.
사용자의 계정 프로파일을 추가한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 추가하려는 계정 프로파일이 연결될 서비스 프로파일의 ID
userID - 추가하려는 계정 프로파일의 사용자 아이디
password - 추가하려는 계정 프로파일의 비밀번호 값
Returns:
계정 프로파일의 추가에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


addAccountProfile

public int addAccountProfile(java.lang.String token,
                             java.lang.String serviceID,
                             java.lang.String userID,
                             java.lang.String password,
                             java.lang.String clientIp)
사용자 계정 프로파일(Account Profile)을 추가한다.
사용자의 계정 프로파일을 추가한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 추가하려는 계정 프로파일이 연결될 서비스 프로파일의 ID
userID - 추가하려는 계정 프로파일의 사용자 아이디
password - 추가하려는 계정 프로파일의 비밀번호 값
clientIp - 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
계정 프로파일의 추가에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


deleteAccountProfile

public int deleteAccountProfile(java.lang.String token,
                                java.lang.String serviceID,
                                java.lang.String password)
사용자의 계정 프로파일(Account Profile)을 삭제한다.
저장된 사용자의 계정 프로파일을 삭제한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 삭제하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
password - 삭제하려는 계정 프로파일의 비밀번호 값
Returns:
계정 프로파일의 삭제에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


deleteAccountProfile

public int deleteAccountProfile(java.lang.String token,
                                java.lang.String serviceID,
                                java.lang.String password,
                                java.lang.String clientIp)
사용자의 계정 프로파일(Account Profile)을 삭제한다.
저장된 사용자의 계정 프로파일을 삭제한다.

Parameters:
token - 검증할 SSO 토큰 데이터
serviceID - 삭제하려는 계정 프로파일이 연결된 서비스 프로파일의 ID
password - 삭제하려는 계정 프로파일의 비밀번호 값
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
계정 프로파일의 삭제에 성공하면 0을 넘겨주고, 실패하면 음수의 에러코드를 넘겨준다.


getSchemaOrgID

public java.lang.String getSchemaOrgID(java.lang.String token)
LDAP 등의 자료저장소에서 사용자의 조직 ID를 가져온다.
LDAP등의 자료 저장소에서 usOrgID란 어트리뷰트 명으로 저장된 사용자의 조직 ID를 가져온다.

Parameters:
token - 검증할 SSO 토큰 데이터
Returns:
성공하면 사용자의 조직 ID값을 넘겨주며, 실패하면 null을 넘겨준다.


getSchemaOrgID

public java.lang.String getSchemaOrgID(java.lang.String token,
                                       java.lang.String clientIp)
LDAP 등의 자료저장소에서 사용자의 조직 ID를 가져온다.
LDAP등의 자료 저장소에서 usOrgID란 어트리뷰트 명으로 저장된 사용자의 조직 ID를 가져온다.

Parameters:
token - 검증할 SSO 토큰 데이터
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 사용자의 조직 ID값을 넘겨주며, 실패하면 null을 넘겨준다.


getSchemaData

public java.lang.String getSchemaData(java.lang.String token,
                                      java.lang.String attrName)
LDAP 등의 자료저장소에 저장된 데이터를 가져온다.
LDAP 등의 자료저장소에 저장된 데이터를 해당 어트리뷰트 명을 이용하여 가져온다. 자세한 내용은 getSchemaData(String, String, String)을 참조한다.

Parameters:
token - 검증할 SSO 토큰 데이터
attrName - 가져오려는 데이터의 어트리뷰트 명
Returns:
성공하면 저장된 데이터가 반환되며
실패하면 null이 반환된다.


getSchemaData

public java.lang.String getSchemaData(java.lang.String token,
                                      java.lang.String attrName,
                                      java.lang.String clientIp)
LDAP 등의 자료저장소에 저장된 데이터를 가져온다.
LDAP 등의 자료저장소에 저장된 데이터를 해당 어트리뷰트 명을 이용하여 가져온다.

Parameters:
token - 검증할 SSO 토큰 데이터
attrName - 가져오려는 데이터의 어트리뷰트 명
clientIp - 사용자데이터를 얻어오려는 클라이언트측 IP 주소. 옵션항목으로 null로 세팅할 수 있다.
Returns:
성공하면 저장된 데이터가 반환되며
실패하면 null이 반환된다.