|
|
|
@ -3,18 +3,15 @@ package kr.xit.biz.ens.model.nice;
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
|
|
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import javax.validation.Valid;
|
|
|
|
|
import javax.validation.constraints.Digits;
|
|
|
|
|
import javax.validation.constraints.Max;
|
|
|
|
|
import javax.validation.constraints.NotBlank;
|
|
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
|
|
import javax.validation.constraints.Size;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants;
|
|
|
|
|
import kr.xit.core.model.IApiResponse;
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
|
import lombok.experimental.SuperBuilder;
|
|
|
|
|
import org.hibernate.validator.constraints.Length;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
@ -33,20 +30,15 @@ import lombok.experimental.SuperBuilder;
|
|
|
|
|
*/
|
|
|
|
|
public class NiceCiDTO {
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
// 기관용 Token
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 기관용 Token(50년 유효) 발급 요청
|
|
|
|
|
* url : /digital/niceid/oauth/oauth/token
|
|
|
|
|
* content-type : application/x-www-form-urlencoded
|
|
|
|
|
* Authorization : Basic + Base64Encoding(access_token:current_timestamp:client_id)
|
|
|
|
|
* - access_token : 만료할 access_token
|
|
|
|
|
* - client_id : access_token발급에 사용된 client_id
|
|
|
|
|
* - current_timestamp
|
|
|
|
|
* Date currentDate = new Date();
|
|
|
|
|
* long current_timestamp = currentDate.getTime() /1000
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "Token", description = "기관용 Token(50년 유효) 발급 요청 파라메터 DTO")
|
|
|
|
|
@Schema(name = "TokenRequest", description = "기관용 Token(50년 유효) 발급 요청 파라메터 DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
@ -83,23 +75,15 @@ public class NiceCiDTO {
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class TokenResponse implements IApiResponse {
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private DataHeader dataHeader;
|
|
|
|
|
private ResponseDataHeader dataHeader;
|
|
|
|
|
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private DataBody dataBody;
|
|
|
|
|
private TokenResDataBody dataBody;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 기관용 Token 폐기 응답
|
|
|
|
|
* 요청
|
|
|
|
|
* url : /digital/niceid/oauth/oauth/token/revokeById
|
|
|
|
|
* Authorization : Basic + Base64Encoding(access_token:current_timestamp:client_id)
|
|
|
|
|
* - access_token : 만료할 access_token
|
|
|
|
|
* - client_id : access_token발급에 사용된 client_id
|
|
|
|
|
* - current_timestamp
|
|
|
|
|
* Date currentDate = new Date();
|
|
|
|
|
* long current_timestamp = currentDate.getTime() /1000
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "TokenRevokeResponse", description = "기관용 Token 폐기 요청 결과 DTO")
|
|
|
|
@ -111,58 +95,27 @@ public class NiceCiDTO {
|
|
|
|
|
public static class TokenRevokeResponse implements IApiResponse {
|
|
|
|
|
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private DataHeader dataHeader;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 기관용 토큰 발급 응답 dataHeader
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "DataHeader", description = "TokenResponse dataHeader DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class DataHeader {
|
|
|
|
|
/**
|
|
|
|
|
* 응답코드
|
|
|
|
|
* 정상 : 1200, 그외 오류
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "응답코드", example = "1200")
|
|
|
|
|
@NotBlank
|
|
|
|
|
private String GW_RSLT_CD;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 응답메세지
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "응답메세지", example = "오류없음")
|
|
|
|
|
@NotBlank
|
|
|
|
|
private String GW_RSLT_MSG;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* TRAN_ID
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "TRAN_ID", example = "20230906120000")
|
|
|
|
|
private String TRAN_ID;
|
|
|
|
|
private ResponseDataHeader dataHeader;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 기관용 토큰 발급 응답 dataHeader
|
|
|
|
|
* 기관용 토큰 발급 응답 dataBody
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "DataBody", description = "TokenResponse dataBody DTO")
|
|
|
|
|
@Schema(name = "TokenResDataBody", description = "TokenResponse dataBody DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class DataBody {
|
|
|
|
|
public static class TokenResDataBody {
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
|
// 토근 발급 요청시 필수
|
|
|
|
|
// 토근 발급 요청시 필수값
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 사용자 엑세스 토큰 값 : token 발급시 필수
|
|
|
|
|
* 모든 API 요청시 헤더에 access_token을 포함하여 전송
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "사용자 엑세스 토큰 값", example = " ")
|
|
|
|
|
@NotBlank
|
|
|
|
@ -184,15 +137,17 @@ public class NiceCiDTO {
|
|
|
|
|
private int expires_in;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 요청한 scope 값 : token 발급시 필수
|
|
|
|
|
* 기본 : default
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "요청한 scope 값", example = "default")
|
|
|
|
|
@NotBlank
|
|
|
|
|
private String scope;
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
|
// 토큰 폐기 요청시 필수
|
|
|
|
|
// 토큰 폐기 요청시 필수값
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* token 폐기시 필수
|
|
|
|
@ -202,4 +157,223 @@ public class NiceCiDTO {
|
|
|
|
|
@NotBlank
|
|
|
|
|
private boolean result;
|
|
|
|
|
}
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
// 기관용 Token
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
// 공개키 : publickey
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 공개키 요청
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "PublickeyRequest", description = "공개키 요청 파라메터 DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class PublickeyRequest {
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private RequestDataHeader dataHeader;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* clinet_credentials 로 고정
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private PublickeyReqDataBody grant_type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 공개키 발급 요청 응답
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "PublickeyResponse", description = "공개키 발급 요청 결과 DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class PublickeyResponse implements IApiResponse {
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private ResponseDataHeader dataHeader;
|
|
|
|
|
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED)
|
|
|
|
|
private PublickeyResDataBody dataBody;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Request dataHeader
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "PublickeyReqDataBody", description = "Publickey Request DataBody DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class PublickeyReqDataBody {
|
|
|
|
|
/**
|
|
|
|
|
* 공개키 요청일시 (YYYYMMDDHH24MISS)
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "공개키 요청일시", example = "2023090612122259")
|
|
|
|
|
@Size(min = 14, max = 14, message = "요청일시(req_dtim)는 필수 입니다(14자리)")
|
|
|
|
|
private String req_dtim;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Schema(name = "PublickeyResDataBody", description = "Publickey Response dataBody DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class PublickeyResDataBody {
|
|
|
|
|
/**
|
|
|
|
|
* dataBody 정상처리여부 (P000 성공, 이외 모두 오류) : 8자리
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "정상처리여부", example = "P000")
|
|
|
|
|
private String rsp_cd;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* rsp_cd가 "EAPI"로 시작될 경우 오류 메시지 세팅
|
|
|
|
|
* 최대 200
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "res_msg", example = " ")
|
|
|
|
|
private String rsp_msg;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* rsp_cd가 P000일 때 상세결과코드 : 4자리
|
|
|
|
|
* - 0000: 공개키 발급
|
|
|
|
|
* - 0001: 필수입력값 오류
|
|
|
|
|
* - 0003: 공개키 발급 대상 회원사 아님
|
|
|
|
|
* - 0099: 기타오류
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "res_msg", example = "0000")
|
|
|
|
|
private String result_cd;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 사이트코드 : 16
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "사이트코드", example = " ")
|
|
|
|
|
private String site_code;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 공개키 버저 : 50
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "공개키버전", example = " ")
|
|
|
|
|
private String key_version;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 공개키 : 최대 1000
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "공개키", example = " ")
|
|
|
|
|
private String public_key;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 공개키 만료일시 (YYYYMMDDHH24MISS) : 14자리
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "공개키만료일시", example = "0000")
|
|
|
|
|
private String valid_dtim;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
// 공개키 : publickey
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* Request dataHeader
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "RequestDataHeader", description = "RequestDataHeader dataHeader DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class RequestDataHeader {
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* TRAN_ID : 요청한값 그대로 return
|
|
|
|
|
* 고유번호 : 최대 24
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "TRAN_ID", example = "20230906120000")
|
|
|
|
|
@Max(value = 24, message = "TRAN_ID는 24자를 넘을 수 없습니다.")
|
|
|
|
|
private String TRAN_ID;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* CNTY_ID : 요청한값 그대로 return
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "CNTY_ID", example = "kr")
|
|
|
|
|
@Max(value = 2, message = "CNTY_ID는 2자를 넘을 수 없습니다.")
|
|
|
|
|
private String CNTY_ID;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Response dataHeader
|
|
|
|
|
*/
|
|
|
|
|
@Schema(name = "ResponseDataHeader", description = "ResponseDataHeader dataHeader DTO")
|
|
|
|
|
@Data
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
@SuperBuilder
|
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
|
|
|
public static class ResponseDataHeader {
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 응답코드 : 4자리
|
|
|
|
|
* 정상 : 1200, 그외 오류
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "응답코드", example = "1200")
|
|
|
|
|
@NotBlank
|
|
|
|
|
private String GW_RSLT_CD;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 응답메세지 : 200
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.REQUIRED, title = "응답메세지", example = "오류없음")
|
|
|
|
|
@Size(min = 1, max = 200)
|
|
|
|
|
private String GW_RSLT_MSG;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* TRAN_ID : 요청한값 그대로 return
|
|
|
|
|
* 고유번호 : 최대 24
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "TRAN_ID", example = "20230906120000")
|
|
|
|
|
private String TRAN_ID;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* CNTY_ID : 요청한값 그대로 return
|
|
|
|
|
* 2자리
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Schema(requiredMode = RequiredMode.AUTO, title = "CNTY_ID", example = "kr")
|
|
|
|
|
private String CNTY_ID;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|