1c48dd834a
- 목록에서 issueHistory 가 null 로만 나와 "값이 없는 것"과 "안 실린 것"이 구분되지 않던 문제 - 목록은 최근 1건, 단건 조회는 보관 중인 전체(최대 10건)를 담는다 - 이력이 없으면 null 대신 빈 목록을 반환하고, serverName 도 함께 담는다 - 단위테스트 2건 추가
100 lines
2.8 KiB
Java
100 lines
2.8 KiB
Java
package com.eactive.eai.manage.oauthtoken;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import com.eactive.eai.common.authoutbound.TokenIssueHistory;
|
|
|
|
import lombok.Data;
|
|
|
|
/**
|
|
* 어댑터그룹별 아웃바운드 OAuth 토큰 현황.
|
|
*
|
|
* accessToken 값은 마스킹해서 담는다. clientSecret 은 담지 않는다.
|
|
*/
|
|
@Data
|
|
public class OAuthTokenStatusDTO {
|
|
|
|
// ---- 등록 정보 ----
|
|
|
|
/** 어댑터그룹명 */
|
|
String adapterGroupName;
|
|
|
|
/** OAuth 인증 정보 사용 여부 (Y/N) */
|
|
String useYn;
|
|
|
|
/**
|
|
* 스케줄러가 토큰을 발급할 때 사용하는 구현체 클래스명.
|
|
*
|
|
* AccessTokenManagerByDB.issueToken() 이 그룹의 어댑터 중 getAdapters().next() 하나만 골라
|
|
* 그 어댑터의 ADAPTER_TOKEN_ISSUING_CLIENT_TYPE 을 쓰므로 여기서도 같은 방식으로 조회한다.
|
|
*/
|
|
String tokenServiceClass;
|
|
|
|
/**
|
|
* 그룹에 속한 어댑터별 ADAPTER_TOKEN_ISSUING_CLIENT_TYPE. (어댑터명 → 클래스명)
|
|
*
|
|
* 어댑터마다 값이 다르면 스케줄러가 쓰는 구현체와 거래 중 재발급(retryAccessTokenVO) 때
|
|
* 쓰이는 구현체가 달라진다. 그 불일치를 확인하기 위한 항목이다.
|
|
*
|
|
* 어댑터그룹 자체를 찾지 못하면 null, 그룹은 있으나 이 서버에 배정된 어댑터가 없으면 빈 값이다.
|
|
*/
|
|
Map<String, String> adapterTokenServiceClasses;
|
|
|
|
/** 토큰 발급 URL. DB(OutboundOAuthCredentialVo)에 설정된 원본이라 상대 경로일 수 있다. */
|
|
String tokenUrl;
|
|
|
|
/**
|
|
* 실제로 호출되는 토큰 발급 URL.
|
|
*
|
|
* tokenUrl 이 절대 URL 이 아니면 어댑터 속성 URL 뒤에 붙여 호출하므로(구현체들의 appendPath 처리),
|
|
* 같은 방식으로 조합한 값이다. 어댑터 속성을 찾지 못하면 null.
|
|
*/
|
|
String tokenUrlResolved;
|
|
|
|
/** 토큰 재발급 주기(초) */
|
|
int intervalSec;
|
|
|
|
// ---- 캐시 상태 ----
|
|
|
|
/** 캐시에 토큰이 있는지 */
|
|
boolean cached;
|
|
|
|
/** 캐시된 토큰이 만료됐는지 */
|
|
boolean expired;
|
|
|
|
/** 만료 시각 */
|
|
String expiration;
|
|
|
|
/** 만료까지 남은 초. 이미 만료됐으면 음수. */
|
|
Long remainSec;
|
|
|
|
// ---- 토큰 정보 ----
|
|
|
|
/** 앞 8자만 남기고 마스킹한 accessToken */
|
|
String accessTokenMasked;
|
|
|
|
/** accessToken 전체 길이 */
|
|
Integer accessTokenLength;
|
|
|
|
String tokenType;
|
|
|
|
String scope;
|
|
|
|
String clientId;
|
|
|
|
/** 조회 불가 사유 등 부가 메시지 */
|
|
String message;
|
|
|
|
/** 이 응답을 만든 서버. 발급 이력이 노드 로컬이라 어느 노드인지 함께 알려준다. */
|
|
String serverName;
|
|
|
|
/**
|
|
* 토큰 발급 이력 (최근 순).
|
|
*
|
|
* 이 노드에서 일어난 발급만 담기며 재기동 시 사라진다.
|
|
* 단건 조회는 보관 중인 전체(최대 10건), 목록 조회는 최근 1건만 담는다.
|
|
*/
|
|
List<TokenIssueHistory> issueHistory;
|
|
}
|