diff --git a/cms-server/pom.xml b/cms-server/pom.xml index 89a306fb4..21d81e7e0 100644 --- a/cms-server/pom.xml +++ b/cms-server/pom.xml @@ -73,6 +73,10 @@ org.eclipse.jetty jetty-server + + org.eclipse.jetty.http2 + jetty-http2-server + org.eclipse.jetty.compression jetty-compression-server diff --git a/cms-server/src/main/java/com/condation/cms/server/JettyServer.java b/cms-server/src/main/java/com/condation/cms/server/JettyServer.java index fa56edd58..170807aea 100644 --- a/cms-server/src/main/java/com/condation/cms/server/JettyServer.java +++ b/cms-server/src/main/java/com/condation/cms/server/JettyServer.java @@ -53,6 +53,7 @@ import org.eclipse.jetty.compression.server.CompressionConfig; import org.eclipse.jetty.compression.server.CompressionHandler; import org.eclipse.jetty.http.HttpHeader; +import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory; import org.eclipse.jetty.server.CustomRequestLog; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; @@ -171,6 +172,7 @@ public void startup() throws IOException { httpConfig.setSendServerVersion(false); httpConfig.setSendXPoweredBy(false); HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig); + HTTP2CServerConnectionFactory h2c = new HTTP2CServerConnectionFactory(httpConfig); //QueuedThreadPool threadPool = new QueuedThreadPool(properties.performance().request_workers()); QueuedThreadPool threadPool = new QueuedThreadPool(); @@ -180,7 +182,7 @@ public void startup() throws IOException { server = new Server(threadPool); server.setRequestLog(new CustomRequestLog(new Slf4jRequestLogWriter(), CustomRequestLog.EXTENDED_NCSA_FORMAT)); - ServerConnector connector = new ServerConnector(server, http11); + ServerConnector connector = new ServerConnector(server, http11, h2c); connector.setPort(properties.serverPort()); connector.setHost(properties.serverIp()); diff --git a/modules/ui-module/src/main/java/com/condation/cms/modules/ui/http/RemoteCallHandler.java b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/http/RemoteCallHandler.java index 06717c8fb..1d33aebd4 100644 --- a/modules/ui-module/src/main/java/com/condation/cms/modules/ui/http/RemoteCallHandler.java +++ b/modules/ui-module/src/main/java/com/condation/cms/modules/ui/http/RemoteCallHandler.java @@ -25,6 +25,7 @@ import com.condation.cms.api.module.SiteRequestContext; import com.condation.cms.api.ui.rpc.RPCError; import com.condation.cms.api.ui.rpc.RPCResult; +import com.condation.cms.auth.services.User; import com.condation.cms.modules.ui.model.RemoteCall; import com.condation.cms.modules.ui.services.RemoteMethodService; import com.condation.cms.modules.ui.utils.json.UIGsonProvider; @@ -63,12 +64,18 @@ public boolean handle(Request request, Response response, Callback callback) thr RPCResult rpcResult; try { - Optional result = remoteCallService.execute(remoteCall.method(), remoteCall.parameters(), getUser(request, moduleContext, requestContext).get()); - if (result.isPresent()) { - rpcResult = new RPCResult(result.get()); + final Optional userOpt = getUser(request, moduleContext, requestContext); + if (userOpt.isEmpty()) { + rpcResult = new RPCResult(new RPCError("no user present")); } else { - rpcResult = new RPCResult(); + Optional result = remoteCallService.execute(remoteCall.method(), remoteCall.parameters(), userOpt.get()); + if (result.isPresent()) { + rpcResult = new RPCResult(result.get()); + } else { + rpcResult = new RPCResult(); + } } + } catch (Exception e) { log.error("error executing endpoint", remoteCall.method(), e); rpcResult = new RPCResult(new RPCError(e.getMessage())); diff --git a/pom.xml b/pom.xml index 3b87d7780..ee36981d2 100644 --- a/pom.xml +++ b/pom.xml @@ -175,6 +175,11 @@ jetty-server ${jetty.version} + + org.eclipse.jetty.http2 + jetty-http2-server + ${jetty.version} + org.projectlombok lombok