mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
added logger trace support for apim integration service
This commit is contained in:
parent
c088a9bc93
commit
5d3aa49e06
@ -15,12 +15,15 @@
|
|||||||
package org.wso2.carbon.apimgt.integration.client;
|
package org.wso2.carbon.apimgt.integration.client;
|
||||||
|
|
||||||
import feign.Feign;
|
import feign.Feign;
|
||||||
|
import feign.Logger;
|
||||||
import feign.RequestInterceptor;
|
import feign.RequestInterceptor;
|
||||||
import feign.RequestTemplate;
|
import feign.RequestTemplate;
|
||||||
import feign.auth.BasicAuthRequestInterceptor;
|
import feign.auth.BasicAuthRequestInterceptor;
|
||||||
import feign.gson.GsonDecoder;
|
import feign.gson.GsonDecoder;
|
||||||
import feign.gson.GsonEncoder;
|
import feign.gson.GsonEncoder;
|
||||||
import feign.jaxrs.JAXRSContract;
|
import feign.jaxrs.JAXRSContract;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.apimgt.integration.client.configs.APIMConfigReader;
|
import org.wso2.carbon.apimgt.integration.client.configs.APIMConfigReader;
|
||||||
import org.wso2.carbon.apimgt.integration.client.exception.APIMClientOAuthException;
|
import org.wso2.carbon.apimgt.integration.client.exception.APIMClientOAuthException;
|
||||||
import org.wso2.carbon.apimgt.integration.client.internal.APIIntegrationClientDataHolder;
|
import org.wso2.carbon.apimgt.integration.client.internal.APIIntegrationClientDataHolder;
|
||||||
@ -47,10 +50,12 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
|||||||
private static final String REQUIRED_SCOPE =
|
private static final String REQUIRED_SCOPE =
|
||||||
"apim:api_create apim:api_view apim:api_publish apim:subscribe apim:tier_view apim:tier_manage " +
|
"apim:api_create apim:api_view apim:api_publish apim:subscribe apim:tier_view apim:tier_manage " +
|
||||||
"apim:subscription_view apim:subscription_block";
|
"apim:subscription_view apim:subscription_block";
|
||||||
|
private static final String APIM_SUBSCRIBE_SCOPE = "apim:subscribe";
|
||||||
private static final long DEFAULT_REFRESH_TIME_OFFSET_IN_MILLIS = 100000;
|
private static final long DEFAULT_REFRESH_TIME_OFFSET_IN_MILLIS = 100000;
|
||||||
private DCRClient dcrClient;
|
private DCRClient dcrClient;
|
||||||
private static OAuthApplication oAuthApplication;
|
private static OAuthApplication oAuthApplication;
|
||||||
private static Map<String, AccessTokenInfo> tenantUserTokenMap = new HashMap<>();
|
private static Map<String, AccessTokenInfo> tenantUserTokenMap = new HashMap<>();
|
||||||
|
private static final Log log = LogFactory.getLog(OAuthRequestInterceptor.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an interceptor that authenticates all requests.
|
* Creates an interceptor that authenticates all requests.
|
||||||
@ -58,8 +63,8 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
|||||||
public OAuthRequestInterceptor() {
|
public OAuthRequestInterceptor() {
|
||||||
String username = APIMConfigReader.getInstance().getConfig().getUsername();
|
String username = APIMConfigReader.getInstance().getConfig().getUsername();
|
||||||
String password = APIMConfigReader.getInstance().getConfig().getPassword();
|
String password = APIMConfigReader.getInstance().getConfig().getPassword();
|
||||||
dcrClient = Feign.builder().client(Utils.getSSLClient()).requestInterceptor(
|
dcrClient = Feign.builder().client(Utils.getSSLClient()).logger(Utils.getLogger(log)).logLevel(
|
||||||
new BasicAuthRequestInterceptor(username, password))
|
Logger.Level.FULL).requestInterceptor(new BasicAuthRequestInterceptor(username, password))
|
||||||
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
|
.contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder())
|
||||||
.target(DCRClient.class, Utils.replaceProperties(
|
.target(DCRClient.class, Utils.replaceProperties(
|
||||||
APIMConfigReader.getInstance().getConfig().getDcrEndpoint()));
|
APIMConfigReader.getInstance().getConfig().getDcrEndpoint()));
|
||||||
@ -95,7 +100,9 @@ public class OAuthRequestInterceptor implements RequestInterceptor {
|
|||||||
REQUIRED_SCOPE);
|
REQUIRED_SCOPE);
|
||||||
tenantBasedAccessTokenInfo.setExpiresIn(
|
tenantBasedAccessTokenInfo.setExpiresIn(
|
||||||
System.currentTimeMillis() + (tenantBasedAccessTokenInfo.getExpiresIn() * 1000));
|
System.currentTimeMillis() + (tenantBasedAccessTokenInfo.getExpiresIn() * 1000));
|
||||||
tenantUserTokenMap.put(username, tenantBasedAccessTokenInfo);
|
if (tenantBasedAccessTokenInfo.getScopes().contains(APIM_SUBSCRIBE_SCOPE)) {
|
||||||
|
tenantUserTokenMap.put(username, tenantBasedAccessTokenInfo);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (tenantBasedAccessTokenInfo.getAccessToken() != null) {
|
if (tenantBasedAccessTokenInfo.getAccessToken() != null) {
|
||||||
|
|||||||
@ -18,9 +18,11 @@
|
|||||||
package org.wso2.carbon.apimgt.integration.client.publisher;
|
package org.wso2.carbon.apimgt.integration.client.publisher;
|
||||||
|
|
||||||
import feign.Feign;
|
import feign.Feign;
|
||||||
|
import feign.Logger;
|
||||||
import feign.RequestInterceptor;
|
import feign.RequestInterceptor;
|
||||||
import feign.gson.GsonDecoder;
|
import feign.gson.GsonDecoder;
|
||||||
import feign.gson.GsonEncoder;
|
import feign.gson.GsonEncoder;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.apimgt.integration.client.configs.APIMConfigReader;
|
import org.wso2.carbon.apimgt.integration.client.configs.APIMConfigReader;
|
||||||
import org.wso2.carbon.apimgt.integration.client.publisher.api.*;
|
import org.wso2.carbon.apimgt.integration.client.publisher.api.*;
|
||||||
@ -31,7 +33,7 @@ import org.wso2.carbon.core.util.Utils;
|
|||||||
*/
|
*/
|
||||||
public class PublisherClient {
|
public class PublisherClient {
|
||||||
|
|
||||||
private static final org.apache.commons.logging.Log log = LogFactory.getLog(PublisherClient.class);
|
private static final Log log = LogFactory.getLog(PublisherClient.class);
|
||||||
private APIsApi api = null;
|
private APIsApi api = null;
|
||||||
private APIDocumentApi document = null;
|
private APIDocumentApi document = null;
|
||||||
private ApplicationsApi application = null;
|
private ApplicationsApi application = null;
|
||||||
@ -46,8 +48,9 @@ public class PublisherClient {
|
|||||||
*/
|
*/
|
||||||
public PublisherClient(RequestInterceptor requestInterceptor) {
|
public PublisherClient(RequestInterceptor requestInterceptor) {
|
||||||
Feign.Builder builder = Feign.builder().client(
|
Feign.Builder builder = Feign.builder().client(
|
||||||
org.wso2.carbon.apimgt.integration.client.util.Utils.getSSLClient()).requestInterceptor(
|
org.wso2.carbon.apimgt.integration.client.util.Utils.getSSLClient()).logger(
|
||||||
requestInterceptor).encoder(new GsonEncoder()).decoder(new GsonDecoder());
|
org.wso2.carbon.apimgt.integration.client.util.Utils.getLogger(log)).logLevel(Logger.Level.FULL)
|
||||||
|
.requestInterceptor(requestInterceptor).encoder(new GsonEncoder()).decoder(new GsonDecoder());
|
||||||
String basePath = Utils.replaceSystemProperty(APIMConfigReader.getInstance().getConfig().getPublisherEndpoint());
|
String basePath = Utils.replaceSystemProperty(APIMConfigReader.getInstance().getConfig().getPublisherEndpoint());
|
||||||
|
|
||||||
api = builder.target(APIsApi.class, basePath);
|
api = builder.target(APIsApi.class, basePath);
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
package org.wso2.carbon.apimgt.integration.client.store;
|
package org.wso2.carbon.apimgt.integration.client.store;
|
||||||
|
|
||||||
import feign.Feign;
|
import feign.Feign;
|
||||||
|
import feign.Logger;
|
||||||
import feign.RequestInterceptor;
|
import feign.RequestInterceptor;
|
||||||
import feign.gson.GsonDecoder;
|
import feign.gson.GsonDecoder;
|
||||||
import feign.gson.GsonEncoder;
|
import feign.gson.GsonEncoder;
|
||||||
@ -46,8 +47,9 @@ public class StoreClient {
|
|||||||
public StoreClient(RequestInterceptor requestInterceptor) {
|
public StoreClient(RequestInterceptor requestInterceptor) {
|
||||||
|
|
||||||
Feign.Builder builder = Feign.builder().client(
|
Feign.Builder builder = Feign.builder().client(
|
||||||
org.wso2.carbon.apimgt.integration.client.util.Utils.getSSLClient()).requestInterceptor(
|
org.wso2.carbon.apimgt.integration.client.util.Utils.getSSLClient()).logger(
|
||||||
requestInterceptor).encoder(new GsonEncoder()).decoder(new GsonDecoder());
|
org.wso2.carbon.apimgt.integration.client.util.Utils.getLogger(log)).logLevel(Logger.Level.FULL)
|
||||||
|
.requestInterceptor(requestInterceptor).encoder(new GsonEncoder()).decoder(new GsonDecoder());
|
||||||
String basePath = Utils.replaceSystemProperty(APIMConfigReader.getInstance().getConfig().getStoreEndpoint());
|
String basePath = Utils.replaceSystemProperty(APIMConfigReader.getInstance().getConfig().getStoreEndpoint());
|
||||||
|
|
||||||
apis = builder.target(ApisAPIApi.class, basePath);
|
apis = builder.target(ApisAPIApi.class, basePath);
|
||||||
|
|||||||
@ -27,10 +27,15 @@ import javax.net.ssl.SSLSession;
|
|||||||
import javax.net.ssl.SSLSocketFactory;
|
import javax.net.ssl.SSLSocketFactory;
|
||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
import java.io.IOException;
|
||||||
import java.security.KeyManagementException;
|
import java.security.KeyManagementException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import feign.Logger;
|
||||||
|
import feign.Request;
|
||||||
|
import feign.Response;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
@ -81,4 +86,31 @@ public class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Logger getLogger(final Log log) {
|
||||||
|
return new Logger() {
|
||||||
|
@Override
|
||||||
|
protected void log(String configKey, String format, Object... args) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug(String.format(methodTag(configKey) + format, args));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void logRequest(String configKey, Level logLevel, Request request) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
super.logRequest(configKey, logLevel, request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Response logAndRebufferResponse(String configKey, Level logLevel, Response response,
|
||||||
|
long elapsedTime) throws IOException {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
return super.logAndRebufferResponse(configKey, logLevel, response, elapsedTime);
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user