ERP용 token 발급 개발
This commit is contained in:
+15
-25
@@ -146,6 +146,7 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
String headerGroupName = prop.getProperty(HEADER_GROUP);
|
String headerGroupName = prop.getProperty(HEADER_GROUP);
|
||||||
String relayResponseHeaderKeys = prop.getProperty(HEADER_KEYS, "");
|
String relayResponseHeaderKeys = prop.getProperty(HEADER_KEYS, "");
|
||||||
useAdapterToken = StringUtils.equalsIgnoreCase(prop.getProperty("ADAPTER_TOKEN_USE_YN", "N"), "Y");
|
useAdapterToken = StringUtils.equalsIgnoreCase(prop.getProperty("ADAPTER_TOKEN_USE_YN", "N"), "Y");
|
||||||
|
String authorizationHeaderName = prop.getProperty("ADAPTER_TOKEN_HEADER_NAME", "Authorization");
|
||||||
|
|
||||||
boolean useForwardProxy = StringUtils.equalsIgnoreCase(prop.getProperty("FORWARD_PROXY_USE_YN", "N"), "Y");
|
boolean useForwardProxy = StringUtils.equalsIgnoreCase(prop.getProperty("FORWARD_PROXY_USE_YN", "N"), "Y");
|
||||||
String forwardProxyUrl = prop.getProperty("FORWARD_PROXY_URL");
|
String forwardProxyUrl = prop.getProperty("FORWARD_PROXY_URL");
|
||||||
@@ -332,8 +333,6 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
|
|
||||||
// OAuth2AccessToken check 부분을 뒤에서 여기로 위치를 옮김, 나이스지키미 암호화 KEY를 얻기 위해서. JWHONG
|
// OAuth2AccessToken check 부분을 뒤에서 여기로 위치를 옮김, 나이스지키미 암호화 KEY를 얻기 위해서. JWHONG
|
||||||
OAuth2AccessTokenVO accessToken = null;
|
OAuth2AccessTokenVO accessToken = null;
|
||||||
String auth ="";
|
|
||||||
Date currentDate = new Date();
|
|
||||||
if (useAdapterToken) {
|
if (useAdapterToken) {
|
||||||
AccessTokenManagerByDB tokenManager = AccessTokenManagerByDB.getInstance();
|
AccessTokenManagerByDB tokenManager = AccessTokenManagerByDB.getInstance();
|
||||||
accessToken = (OAuth2AccessTokenVO) tokenManager.getAccessTokenVO(vo.getAdapterGroupName());
|
accessToken = (OAuth2AccessTokenVO) tokenManager.getAccessTokenVO(vo.getAdapterGroupName());
|
||||||
@@ -351,29 +350,11 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
+ accessToken + "]");
|
+ accessToken + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
Properties properties = AdapterPropManager.getInstance().getProperties(vo.getAdapterName()); // jwhong
|
setAuthHeaders(method, accessToken, authorizationHeaderName);
|
||||||
String encryptAlgorithm = properties.getProperty("ENCRYPT_ALGORITHM"); // jwhong
|
|
||||||
if (useAdapterToken && "AES256-NICEON".equals(encryptAlgorithm)) {
|
|
||||||
String niceToken = accessToken.getAccessToken();
|
|
||||||
if ( niceToken == null || niceToken == "") {
|
|
||||||
throw new Exception("NiceOn Token is empty, TOKEN failed to be issued, TOKEN = [" + niceToken + "]");
|
|
||||||
}
|
|
||||||
String clientId = accessToken.getClientId(); // HttpClientAccessTokenServiceWithBase64NiceOn 서 넣어줌
|
|
||||||
long currentTime = currentDate.getTime() / 1000;
|
|
||||||
auth = niceToken + ":" + currentTime + ":" + clientId ;
|
|
||||||
logger.debug("HttpClientAdapterServiceRest] NiceOn auth = [" + auth + "]");
|
|
||||||
auth = Base64.getEncoder().encodeToString(auth.getBytes("UTF-8"));
|
|
||||||
logger.debug("HttpClientAdapterServiceRest] NiceOn Base64 encoded auth = [" + auth + "]");
|
|
||||||
|
|
||||||
setNiceOnAuthHeaders(method, auth);
|
|
||||||
} else {
|
|
||||||
setAuthHeaders(method, accessToken); // 원래 있던 logic
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (logger.isDebug()) {
|
if (logger.isDebug()) {
|
||||||
logger.debug("HttpClientAdapterServiceRest] SEND (" + vo.getAdapterGroupName()
|
logger.debug("HttpClientAdapterServiceRest] SEND (" + vo.getAdapterGroupName()
|
||||||
+ ") RequestHeader [" + method.getHeader("Authorization").getName() + ": " + method.getHeader("Authorization").getValue() + "]");
|
+ ") RequestHeader [" + method.getHeader(authorizationHeaderName).getName() + ": " + method.getHeader(authorizationHeaderName).getValue() + "]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,7 +371,7 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
logger.debug("authToken :::::::::::::::::::::::::::::::::::" + authToken);
|
logger.debug("authToken :::::::::::::::::::::::::::::::::::" + authToken);
|
||||||
|
|
||||||
if(!StringUtils.isBlank(authToken)) {
|
if(!StringUtils.isBlank(authToken)) {
|
||||||
setAuthHeaders(method, authToken);
|
setAuthHeaders(method, authToken, authorizationHeaderName);
|
||||||
}
|
}
|
||||||
// 여기 까지
|
// 여기 까지
|
||||||
|
|
||||||
@@ -618,9 +599,8 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
String oldToken = accessToken == null ? null : accessToken.getAccessToken();
|
String oldToken = accessToken == null ? null : accessToken.getAccessToken();
|
||||||
OAuth2AccessTokenVO newaccessToken = (OAuth2AccessTokenVO) tokenManager
|
OAuth2AccessTokenVO newaccessToken = (OAuth2AccessTokenVO) tokenManager
|
||||||
.retryAccessTokenVO(vo.getAdapterGroupName(), prop, oldToken);
|
.retryAccessTokenVO(vo.getAdapterGroupName(), prop, oldToken);
|
||||||
method.setHeader("Authorization", newaccessToken.getAuthorization());
|
|
||||||
|
|
||||||
setAuthHeaders(method, newaccessToken);
|
setAuthHeaders(method, accessToken, authorizationHeaderName);
|
||||||
|
|
||||||
if (logger.isDebug() && "N".equals(vo.getTestCallYn())) {
|
if (logger.isDebug() && "N".equals(vo.getTestCallYn())) {
|
||||||
logger.debug("HttpClientAdapterServiceRest] SEND (" + vo.getAdapterGroupName()
|
logger.debug("HttpClientAdapterServiceRest] SEND (" + vo.getAdapterGroupName()
|
||||||
@@ -878,11 +858,21 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp
|
|||||||
String.format("%s", authorization));
|
String.format("%s", authorization));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setAuthHeaders(HttpUriRequestBase method, String authorization, String authorizationHeaderName) throws Exception {
|
||||||
|
method.setHeader(authorizationHeaderName,
|
||||||
|
String.format("%s", authorization));
|
||||||
|
}
|
||||||
|
|
||||||
protected void setAuthHeaders(HttpUriRequestBase method, OAuth2AccessTokenVO accessToken) throws Exception {
|
protected void setAuthHeaders(HttpUriRequestBase method, OAuth2AccessTokenVO accessToken) throws Exception {
|
||||||
method.setHeader("Authorization",
|
method.setHeader("Authorization",
|
||||||
String.format("%s %s", AccessTokenVO.BEARER_TYPE, accessToken.getAccessToken()));
|
String.format("%s %s", AccessTokenVO.BEARER_TYPE, accessToken.getAccessToken()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setAuthHeaders(HttpUriRequestBase method, OAuth2AccessTokenVO accessToken, String authorizationHeaderName) throws Exception {
|
||||||
|
method.setHeader(authorizationHeaderName,
|
||||||
|
String.format("%s %s", AccessTokenVO.BEARER_TYPE, accessToken.getAccessToken()));
|
||||||
|
}
|
||||||
|
|
||||||
/* nice on 나이스 지키미 용으로 생성함
|
/* nice on 나이스 지키미 용으로 생성함
|
||||||
* jwhong 2015-11-04
|
* jwhong 2015-11-04
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -327,11 +327,11 @@ public class AccessTokenManagerByDB implements Lifecycle {
|
|||||||
logger.warn("No valid adapter configuration found for adapter group: {}", adapterGroupName);
|
logger.warn("No valid adapter configuration found for adapter group: {}", adapterGroupName);
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Task execution failed for adapter group: {}", adapterGroupName, e);
|
logger.error("Task execution failed for adapter group: {}", adapterGroupName, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return accessToken;
|
return accessToken;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,18 +474,18 @@ public class AccessTokenManagerByDB implements Lifecycle {
|
|||||||
if (accessToken == null || accessToken.isExpired()
|
if (accessToken == null || accessToken.isExpired()
|
||||||
|| StringUtils.equals(accessToken.getAccessToken(), oldToken)) {
|
|| StringUtils.equals(accessToken.getAccessToken(), oldToken)) {
|
||||||
|
|
||||||
if (isOAuthCredentialRegistered(adapterGroupName) == false) {
|
if (isOAuthCredentialRegistered(adapterGroupName) == false) {
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"There is no OAuthCredentialRegistered information, or whether to use it is 'N'.");
|
"There is no OAuthCredentialRegistered information, or whether to use it is 'N'.");
|
||||||
}
|
}
|
||||||
String type = properties.getProperty("ADAPTER_TOKEN_ISSUING_CLIENT_TYPE");
|
String type = properties.getProperty("ADAPTER_TOKEN_ISSUING_CLIENT_TYPE");
|
||||||
|
|
||||||
HttpClientAccessTokenServiceByDB service = HttpClientAccessTokenServiceFactoryByDB.createFactory(type);
|
HttpClientAccessTokenServiceByDB service = HttpClientAccessTokenServiceFactoryByDB.createFactory(type);
|
||||||
OutboundOAuthCredentialVo outboundOAuthCredentialVo = outboundOAuthCredentialVos.get(adapterGroupName);
|
OutboundOAuthCredentialVo outboundOAuthCredentialVo = outboundOAuthCredentialVos.get(adapterGroupName);
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
accessToken = (AccessTokenVO) service.execute(adapterGroupName, properties,
|
accessToken = (AccessTokenVO) service.execute(adapterGroupName, properties,
|
||||||
outboundOAuthCredentialVo);
|
outboundOAuthCredentialVo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return accessToken;
|
return accessToken;
|
||||||
|
|||||||
Reference in New Issue
Block a user