Thanks Yuriy.
I was able to install the latest version(4.2) and register a client successfully.
I encounter another error when I call the API `get-client-token`.
The API return status code 400,
Request
```
endpoint: /get-client-token
request_body: {
"op_configuration_endpoint": "https://mydomain.com:8443/acme/.well-known/openid-configuration",
"scope": ["openid", "oxd", "profile"],
"client_id": "Zdwhgy6y9tTEf4D59XX95wrXTf3CchVjy5Z5r5ktz",
"client_secret": "5fVyAnJca8XFkKzbAXVDRVKBArfTPFwQBvRMsdh6Fef3GRPqwbThYAbfDwbCTfGa8Enmmu32gwzBGZ6z"
}
```
Response
```
status_code: 500
response_body: {
"error": "internal_error",
"error_description": "Unknown internal server error occurs.",
"details": null,
"reason": null
}
```
I went to see the logs on the server, it seems to be a java error.
```
TRACE [04:49:24.024] [dw-25 - POST /get-client-token] o.g.o.s.RestResource - Checking if caller ipAddress : 36.228.115.147 is allowed to make request to oxd.
TRACE [04:49:24.024] [dw-25 - POST /get-client-token] o.g.o.s.RestResource - Command: {
"op_configuration_endpoint": "https://mydomain.com:8443/acme/.well-known/openid-configuration",
"scope": ["openid", "oxd", "profile"],
"client_id": "Zdwhgy6y9tTEf4D59XX95wrXTf3CchVjy5Z5r5ktz",
"client_secret": "5fVyAnJca8XFkKzbAXVDRVKBArfTPFwQBvRMsdh6Fef3GRPqwbThYAbfDwbCTfGa8Enmmu32gwzBGZ6z"
}
TRACE [04:49:24.024] [dw-25 - POST /get-client-token] o.g.o.s.s.RpService - Found rp by client_id: Zdwhgy6y9tTEf4D59XX95wrXTf3CchVjy5Z5r5ktz, rp: Rp{oxdId='8f4139f1-c444-40cb-bcd9-b4b3c1d51ca6', opHost='null', opDiscoveryPath='null', opConfigurationEndpoint='https://mydomain.com:8443/acme/.well-known/openid-configuration', idToken='null', accessToken='null', redirectUri='https://oauth-demo-appb.herokuapp.com/app/c', postLogoutRedirectUri='null', postLogoutRedirectUris='[https://oauth-demo-appb.herokuapp.com/app/c]', applicationType='web', redirectUris=[https://oauth-demo-appb.herokuapp.com/app/c], frontChannelLogoutUris=[], claimsRedirectUri=[], responseTypes=[code], clientId='Zdwhgy6y9tTEf4D59XX95wrXTf3CchVjy5Z5r5ktz', clientRegistrationAccessToken='null', clientRegistrationClientUri='null', clientIdIssuedAt=null, clientSecretExpiresAt=null, clientName='App C', sectorIdentifierUri='null', clientJwksUri='null', scope=[openid, oxd, profile], uiLocales=[], claimsLocales=[], acrValues=[], grantType=[authorization_code, client_credentials], contacts=[service@example.com], userId='null', userSecret='null', pat='null', patExpiresIn=null, patCreatedAt=null, patRefreshToken='null', oauthToken='null', oauthTokenExpiresIn='null, oauthTokenCreatedAt='null, oauthTokenRefreshToken=''null', umaProtectedResources='[], rpt='null', rptTokenType='null', rptPct='null', rptExpiresAt='null', rptCreatedAt='null', rptUpgraded='null', rptAsJwt='false', tokenEndpointAuthSigningAlg='null', tokenEndpointAuthMethod='null', oxdRpProgrammingLanguage='null', accessTokenAsJwt='false', accessTokenSigningAlg='null', frontChannelLogoutSessionRequired='false', runIntrospectionScriptBeforeAccessTokenAsJwtCreationAndIncludeClaims='false', requireAuthTime='false', logoUri='null', clientUri='null', policyUri='null', tosUri='null', jwks='null', idTokenBindingCnf='null', tlsClientAuthSubjectDn='null', idTokenSignedResponseAlg='null', idTokenEncryptedResponseAlg='null', idTokenEncryptedResponseEnc='null', userInfoSignedResponseAlg='null', userInfoEncryptedResponseAlg='null', userInfoEncryptedResponseEnc='null', requestObjectSigningAlg='null', requestObjectEncryptionAlg='null', requestObjectEncryptionEnc='null', defaultMaxAge='null', initiateLoginUri='null', authorizedOrigins='null', accessTokenLifetime='null', softwareId='null', softwareVersion='null', softwareStatement='null', customAttributes='{oxd_id=8f4139f1-c444-40cb-bcd9-b4b3c1d51ca6}', requestUris='[]', lastSynced='null', syncClientFromOp='false', syncClientPeriodInSeconds='86400', allowSpontaneousScopes='false', spontaneousScopes='null'}
TRACE [04:49:24.025] [dw-25 - POST /get-client-token] o.g.o.s.s.HttpService - Created TRUST_ALL client.
ERROR [04:49:24.346] [dw-25 - POST /get-client-token] o.g.o.s.o.GetClientTokenOperation - RESTEASY004020: uriTemplate parameter is null
java.lang.IllegalArgumentException: RESTEASY004020: uriTemplate parameter is null
at org.jboss.resteasy.specimpl.ResteasyUriBuilder.uriTemplate(ResteasyUriBuilder.java:152)
at org.jboss.resteasy.client.ClientRequest.getBuilder(ClientRequest.java:156)
at org.jboss.resteasy.client.ClientRequest.<init>(ClientRequest.java:107)
at org.gluu.oxauth.client.BaseClient.initClientRequest(BaseClient.java:231)
at org.gluu.oxauth.client.TokenClient.exec(TokenClient.java:218)
at org.gluu.oxauth.client.TokenClient.execClientCredentialsGrant(TokenClient.java:151)
at org.gluu.oxd.server.op.GetClientTokenOperation.execute(GetClientTokenOperation.java:72)
at org.gluu.oxd.server.op.GetClientTokenOperation.execute(GetClientTokenOperation.java:30)
at org.gluu.oxd.server.Processor.process(Processor.java:47)
at org.gluu.oxd.server.RestResource.getObjectForJsonConversion(RestResource.java:337)
at org.gluu.oxd.server.RestResource.process(RestResource.java:283)
at org.gluu.oxd.server.RestResource.getClientToken(RestResource.java:71)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:50)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1631)
at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:47)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:41)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:249)
at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:52)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:272)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:543)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:398)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:834)
ERROR [04:49:24.348] [dw-25 - POST /get-client-token] o.g.o.s.Processor - HTTP 500 Internal Server Error
org.gluu.oxd.server.HttpException: HTTP 500 Internal Server Error
at org.gluu.oxd.server.HttpException.internalError(HttpException.java:30)
at org.gluu.oxd.server.op.GetClientTokenOperation.execute(GetClientTokenOperation.java:97)
at org.gluu.oxd.server.op.GetClientTokenOperation.execute(GetClientTokenOperation.java:30)
at org.gluu.oxd.server.Processor.process(Processor.java:47)
at org.gluu.oxd.server.RestResource.getObjectForJsonConversion(RestResource.java:337)
at org.gluu.oxd.server.RestResource.process(RestResource.java:283)
at org.gluu.oxd.server.RestResource.getClientToken(RestResource.java:71)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:50)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1631)
at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:47)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:41)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:249)
at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:52)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:272)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:543)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:398)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:834)
```
Could you please suggest how to solve this problem or is there anything on the setting file I may do wrongly as I don't know Java?