问题
I want to start the apimanger in my windows laptop, and access it with this url
https://dev.apigw.org:9443/publisher
This is the error page I see:
I made the below changes as per wso2 300 documentation (self signed certificate): https://apim.docs.wso2.com/en/latest/reference/config-catalog/
What change should I do in the below process, so I can avoid INVALID REQUEST / INVALID_CALLBACK?
https://apim.docs.wso2.com/en/latest/reference/config-catalog/
:: wso2 installed. Security folder
cd C:\apps\WSO2\apimanager\3.0.0\repository\resources\security
::Add hostname to hosts file
C:\Windows\System32\drivers\etc
127.0.0.1 localhost dev.apigw.org
:: Key generation for domain dev.apigw.org
SET APIGW_DOMAIN="dev.apigw.org"
SET KEYSTORE_NAME=newkeystore.jks
SET PUBLIC_CERT_ALIAS=newcert
SET PWD_KEYSTORE=mypassword
SET PWD_PRIVATEKEY=mypassword
keytool -genkey -alias newcert -keyalg RSA -keysize 2048 -keystore newkeystore.jks -dname "CN=dev.apigw.org, OU=Home,O=Home,L=SL,S=WS,C=LK" -storepass mypassword -keypass mypassword
keytool -list -v -keystore newkeystore.jks -storepass mypassword
:: Optional: Generate CSR -> Change doc source
::keytool -certreq -alias newcert -file newcertreq.csr -keystore newkeystore.jks
:: Generate/export CRT (selfsigned) from the new keystore.
keytool -export -alias newcert -keystore newkeystore.jks -file newcert.crt -storepass mypassword
::export public key from self keystore
keytool -export -alias newcert -keystore newkeystore.jks -file newkeystore.pem -storepass mypassword
::import publickye to client-truststore.jks
keytool -import -alias newcert -file newkeystore.pem -keystore client-truststore.jks -storepass wso2carbon
:: Make this changes to deployment.toml
C:\apps\WSO2\apimanager\3.0.0\repository\conf\deployment.toml
[server]
hostname = "dev.apigw.org"
node_ip = "192.168.0.12"
[apim.devportal]
url = "https://dev.apigw.org:${mgt.transport.https.port}/devportal"
#enable_application_sharing = false
Add this snippet to deploymentoml above [keystore.tls]
[keystore.primary]
file_name = "newkeystore.jks"
type = "JKS"
password = "mypassword"
alias = "newcert"
key_password = "mypassword"
# Comment out section [keystore.tls]
#[keystore.tls]
#file_name = "wso2carbon.jks"
#type = "JKS"
#password = "wso2carbon"
#alias = "wso2carbon"
#key_password = "wso2carbon"
From logs, it looks like I have to replace "localhost" to dev.apigw.org in SOME config file(s) - what are those? Which place? I don't want to do a global replacement without knowing consequences.
wso2carbon.log
TID: [-1234] [] [2020-02-29 14:06:47,948] INFO {org.apache.synapse.transport.passthru.core.PassThroughListeningIOReactorManager} - Pass-through HTTP Listener started on 0:0:0:0:0:0:0:0:8280
TID: [-1234] [] [2020-02-29 14:06:47,950] INFO {org.apache.synapse.transport.passthru.PassThroughHttpMultiSSLListener} - Starting Pass-through HTTPS Listener...
TID: [-1234] [] [2020-02-29 14:06:47,960] INFO {org.apache.synapse.transport.passthru.core.PassThroughListeningIOReactorManager} - Pass-through HTTPS Listener started on 0:0:0:0:0:0:0:0:8243
TID: [-1234] [] [2020-02-29 14:06:48,516] INFO {org.wso2.carbon.ntask.core.service.impl.TaskServiceImpl} - Task service starting in STANDALONE mode...
TID: [-1234] [] [2020-02-29 14:06:48,588] INFO {org.wso2.carbon.registry.eventing.internal.RegistryEventingServiceComponent} - Successfully Initialized Eventing on Registry
TID: [-1234] [] [2020-02-29 14:06:49,021] INFO {org.wso2.carbon.core.init.JMXServerManager} - JMX Service URL : service:jmx:rmi://localhost:11111/jndi/rmi://localhost:9999/jmxrmi
TID: [-1234] [] [2020-02-29 14:06:49,027] INFO {org.wso2.carbon.core.internal.StartupFinalizerServiceComponent} - Server : WSO2 API Manager-3.0.0
TID: [-1234] [] [2020-02-29 14:06:49,029] INFO {org.wso2.carbon.core.internal.StartupFinalizerServiceComponent} - WSO2 Carbon started in 216 sec
TID: [-1234] [] [2020-02-29 14:06:50,175] INFO {org.wso2.carbon.ui.internal.CarbonUIServiceComponent} - Mgt Console URL : https://dev.apigw.org:9443/carbon/
TID: [-1234] [] [2020-02-29 14:06:50,177] INFO {org.wso2.carbon.ui.internal.CarbonUIServiceComponent} - API Developer Portal Default Context : https://dev.apigw.org:9443/devportal
TID: [-1234] [] [2020-02-29 14:06:50,178] INFO {org.wso2.carbon.ui.internal.CarbonUIServiceComponent} - API Publisher Default Context : https://dev.apigw.org:9443/publisher
TID: [-1] [] [2020-02-29 14:07:01,658] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.BlockingConditionRetriever} - Failed retrieving Blocking Conditions from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:01,686] WARN {org.wso2.carbon.apimgt.gateway.jwt.RevokedJWTTokensRetriever} - Failed retrieving revoked JWT token signatures from remote endpoint: hostname in certificate didn't match: **<localhost>** != **<dev.apigw.org>**. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:01,672] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever} - Failed retrieving throttling data from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1234] [] [2020-02-29 14:07:04,495] WARN {org.wso2.carbon.identity.oauth2.OAuth2Service} - Provided Callback URL does not match with the provided one.
TID: [-1] [] [2020-02-29 14:07:16,715] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.BlockingConditionRetriever} - Failed retrieving Blocking Conditions from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:16,734] WARN {org.wso2.carbon.apimgt.gateway.jwt.RevokedJWTTokensRetriever} - Failed retrieving revoked JWT token signatures from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:16,739] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever} - Failed retrieving throttling data from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:31,732] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.BlockingConditionRetriever} - Failed retrieving Blocking Conditions from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:31,757] WARN {org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever} - Failed retrieving throttling data from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1] [] [2020-02-29 14:07:31,766] WARN {org.wso2.carbon.apimgt.gateway.jwt.RevokedJWTTokensRetriever} - Failed retrieving revoked JWT token signatures from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
TID: [-1234] [] [2020-02-29 14:07:33,734] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Shutdown hook triggered....
TID: [-1234] [] [2020-02-29 14:07:33,737] INFO {org.wso2.carbon.core.init.CarbonServerManager} - Gracefully shutting down WSO2 API Manager...
TID: [-1234] [] [2020-02-29 14:07:33,743] INFO {org.wso2.carbon.core.ServerManagement} - Starting to switch to maintenance mode...
wso2-apigw-errors.log
2020-02-29T14:02:01,205 [-] [Timer-7] WARN KeyTemplateRetriever Failed retrieving throttling data from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
2020-02-29T14:02:01,221 [-] [Timer-6] WARN BlockingConditionRetriever Failed retrieving Blocking Conditions from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
2020-02-29T14:02:01,287 [-] [Timer-8] WARN RevokedJWTTokensRetriever Failed retrieving revoked JWT token signatures from remote endpoint: hostname in certificate didn't match: <localhost> != <dev.apigw.org>. Retrying after 15 seconds...
2020-02-29T14:02:16,218 [-] [Timer-7] ERROR KeyTemplateRetriever Exception when retrieving throttling data from remote endpoint
javax.net.ssl.SSLException: hostname in certificate didn't match: <localhost> != <dev.apigw.org>
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:238) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:159) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:561) ~[httpclient_4.3.6.wso2v2.jar:?]
Shouldnt this one place hostname change act as global switch? Is this a bug?
C:\apps\WSO2\apimanager\3.0.0\repository\conf\deployment.toml
[server]
hostname = "dev.apigw.org"
node_ip = "192.168.0.12"
回答1:
Here is a workaroud
Go to this url:
https://dev.apigw.org:9443/carbon/oauth/edit.jsp?appName=admin_admin_publisher
Replace this regexp in callback uri that has localhost:
regexp=(https://localhost:9443/publisher/services/auth/callback/login|https://localhost:9443/publisher/services/auth/callback/logout)
Corrected regexp:
regexp=(https://dev.apigw.org:9443/publisher/services/auth/callback/login|https://dev.apigw.org:9443/publisher/services/auth/callback/logout)
I hope wso2 fixes this so we don't need to hack:
Also change: IdentityProviders > Resident url: https://dev.apigw.org:9443/carbon/idpmgt/idp-mgt-edit-local.jsp
I'm able to get to /devportal
However, when I try to get oauth token for an api it fails.
2020-03-01T09:52:49,481 [-] [https-jsse-nio-9443-exec-6] ERROR ApplicationsApiServiceImpl Error while generating PRODUCTION token for application 71658292-f9b3-47d0-90e6-18e7af32a3c6
org.wso2.carbon.apimgt.api.APIManagementException: Error while creating tokens - hostname in certificate didn't match: <localhost> != <dev.apigw.org>
at org.wso2.carbon.apimgt.impl.AbstractKeyManager.handleException_aroundBody6(AbstractKeyManager.java:165) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.AbstractKeyManager.handleException(AbstractKeyManager.java:163) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.AMDefaultKeyManagerImpl.getNewApplicationAccessToken_aroundBody10(AMDefaultKeyManagerImpl.java:411) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.AMDefaultKeyManagerImpl.getNewApplicationAccessToken(AMDefaultKeyManagerImpl.java:304) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.APIConsumerImpl.renewAccessToken_aroundBody30(APIConsumerImpl.java:1331) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.APIConsumerImpl.renewAccessToken(APIConsumerImpl.java:1310) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.rest.api.store.v1.impl.ApplicationsApiServiceImpl.applicationsApplicationIdKeysKeyTypeGenerateTokenPost(ApplicationsApiServiceImpl.java:631) [classes/:?]
at org.wso2.carbon.apimgt.rest.api.store.v1.ApplicationsApi.applicationsApplicationIdKeysKeyTypeGenerateTokenPost(ApplicationsApi.java:193) [classes/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:193) [cxf-rt-frontend-jaxrs-3.2.8.jar:3.2.8]
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:103) [cxf-rt-frontend-jaxrs-3.2.8.jar:3.2.8]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-core-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) [tomcat-servlet-api_9.0.22.wso2v1.jar:?]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [cxf-rt-transports-http-3.2.8.jar:3.2.8]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat_9.0.22.wso2v1.jar:?]
at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:80) [org.wso2.carbon.identity.context.rewrite.valve_1.3.6.jar:?]
at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:100) [org.wso2.carbon.identity.authz.valve_1.3.6.jar:?]
at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:74) [org.wso2.carbon.identity.auth.valve_1.3.6.jar:?]
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:146) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) [tomcat_9.0.22.wso2v1.jar:?]
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(RequestCorrelationIdValve.java:116) [org.wso2.carbon.tomcat.ext_4.5.1.jar:?]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) [tomcat_9.0.22.wso2v1.jar:?]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat_9.0.22.wso2v1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat_9.0.22.wso2v1.jar:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: javax.net.ssl.SSLException: hostname in certificate didn't match: <localhost> != <dev.apigw.org>
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:238) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:159) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:561) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:536) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:403) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) ~[httpclient_4.3.6.wso2v2.jar:?]
at org.wso2.carbon.apimgt.impl.AMDefaultKeyManagerImpl.executeHTTPrequest_aroundBody50(AMDefaultKeyManagerImpl.java:775) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.AMDefaultKeyManagerImpl.executeHTTPrequest(AMDefaultKeyManagerImpl.java:773) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
at org.wso2.carbon.apimgt.impl.AMDefaultKeyManagerImpl.getNewApplicationAccessToken_aroundBody10(AMDefaultKeyManagerImpl.java:385) ~[org.wso2.carbon.apimgt.impl_6.5.349.jar:?]
... 57 more
来源:https://stackoverflow.com/questions/60468854/wso2-apiman-3-0-0-error-invalid-request-invalid-callback