long idleTimeout = endpointConfig.getIntField(ENDPOINT_CONFIG_TIMEOUT); ListenerConfiguration listenerConfiguration = new ListenerConfiguration(); listenerConfiguration.setHost( configRegistry.getConfigOrDefault("b7a.http.host", GrpcConstants.HTTP_DEFAULT_HOST)); } else { listenerConfiguration.setHost(host); throw new BallerinaConnectorException("Listener port is not defined!"); listenerConfiguration.setPort(Math.toIntExact(port)); "timeout, set value to 0"); listenerConfiguration.setSocketIdleTimeout(Math.toIntExact(idleTimeout)); listenerConfiguration.setServerHeader(getServerName()); listenerConfiguration.setVersion(String.valueOf(Constants.HTTP_2_0));
private ListenerConfiguration setSslConfig(Struct sslConfig, ListenerConfiguration listenerConfiguration) { listenerConfiguration.setScheme(PROTOCOL_HTTPS); Struct trustStore = sslConfig.getStructField(ENDPOINT_CONFIG_TRUST_STORE); Struct keyStore = sslConfig.getStructField(ENDPOINT_CONFIG_KEY_STORE); listenerConfiguration.setKeyStoreFile(keyStoreFile); listenerConfiguration.setKeyStorePass(keyStorePassword); } else { listenerConfiguration.setServerKeyFile(keyFile); listenerConfiguration.setServerCertificates(certFile); if (StringUtils.isNotBlank(keyPassword)) { listenerConfiguration.setServerKeyPassword(keyPassword); listenerConfiguration.setVerifyClient(sslVerifyClient); if (trustStore == null && StringUtils.isNotBlank(sslVerifyClient) && StringUtils.isBlank(trustCerts)) { throw new BallerinaException( listenerConfiguration.setTrustStoreFile(trustStoreFile); listenerConfiguration.setTrustStorePass(trustStorePassword); } else if (StringUtils.isNotBlank(trustCerts)) { listenerConfiguration.setServerTrustCertificates(trustCerts); listenerConfiguration.setSSLProtocol(sslProtocol); long cacheSize = validateCert.getIntField(HttpConstants.SSL_CONFIG_CACHE_SIZE); long cacheValidationPeriod = validateCert.getIntField(HttpConstants.SSL_CONFIG_CACHE_VALIDITY_PERIOD); listenerConfiguration.setValidateCertEnabled(validateCertificateEnabled); if (validateCertificateEnabled) { if (cacheSize != 0) { listenerConfiguration.setCacheSize(Math.toIntExact(cacheSize));
@Override public ServerConnector createServerConnector(ServerBootstrapConfiguration serverBootstrapConfiguration, ListenerConfiguration listenerConfig) { ServerConnectorBootstrap serverConnectorBootstrap = new ServerConnectorBootstrap(allChannels); serverConnectorBootstrap.addSocketConfiguration(serverBootstrapConfiguration); SSLConfig sslConfig = listenerConfig.getListenerSSLConfig(); serverConnectorBootstrap.addSecurity(sslConfig); if (sslConfig != null) { setSslContext(serverConnectorBootstrap, sslConfig, listenerConfig); } serverConnectorBootstrap.addIdleTimeout(listenerConfig.getSocketIdleTimeout()); if (Constants.HTTP_2_0 == Float.valueOf(listenerConfig.getVersion())) { serverConnectorBootstrap.setHttp2Enabled(true); } serverConnectorBootstrap.addHttpTraceLogHandler(listenerConfig.isHttpTraceLogEnabled()); serverConnectorBootstrap.addHttpAccessLogHandler(listenerConfig.isHttpAccessLogEnabled()); serverConnectorBootstrap.addThreadPools(bossGroup, workerGroup); serverConnectorBootstrap.addHeaderAndEntitySizeValidation(listenerConfig.getRequestSizeValidationConfig()); serverConnectorBootstrap.addChunkingBehaviour(listenerConfig.getChunkConfig()); serverConnectorBootstrap.addKeepAliveBehaviour(listenerConfig.getKeepAliveConfig()); serverConnectorBootstrap.addServerHeader(listenerConfig.getServerHeader()); serverConnectorBootstrap.setPipeliningEnabled(listenerConfig.isPipeliningEnabled()); serverConnectorBootstrap.setPipeliningLimit(listenerConfig.getPipeliningLimit()); if (listenerConfig.isPipeliningEnabled()) { pipeliningGroup = new DefaultEventExecutorGroup(PIPELINING_THREAD_COUNT, new DefaultThreadFactory( PIPELINING_THREAD_POOL_NAME)); serverConnectorBootstrap.setPipeliningThreadGroup(pipeliningGroup); } return serverConnectorBootstrap.getServerConnector(listenerConfig.getHost(), listenerConfig.getPort()); }
long idleTimeout = endpointConfig.getIntField(HttpConstants.ENDPOINT_CONFIG_TIMEOUT); ListenerConfiguration listenerConfiguration = new ListenerConfiguration(); listenerConfiguration.setHost( configRegistry.getConfigOrDefault("b7a.http.host", HttpConstants.HTTP_DEFAULT_HOST)); } else { listenerConfiguration.setHost(host); throw new BallerinaConnectorException("Listener port is not defined!"); listenerConfiguration.setPort(Math.toIntExact(port)); listenerConfiguration.setKeepAliveConfig(HttpUtil.getKeepAliveConfig(keepAlive)); "timeout please use value 0"); listenerConfiguration.setSocketIdleTimeout(Math.toIntExact(idleTimeout)); listenerConfiguration.setVersion(httpVersion); listenerConfiguration.setServerHeader(getServerName()); listenerConfiguration.setPipeliningEnabled(true); //Pipelining is enabled all the time listenerConfiguration.setPipeliningLimit(endpointConfig.getIntField( HttpConstants.PIPELINING_REQUEST_LIMIT));
public ServerConnector createHttpServerConnector(ListenerConfiguration listenerConfig) { String listenerInterface = listenerConfig.getHost() + ":" + listenerConfig.getPort(); HttpServerConnectorContext httpServerConnectorContext = serverConnectorPool.get(listenerInterface); if (httpServerConnectorContext != null) { if (checkForConflicts(listenerConfig, httpServerConnectorContext)) { throw new BallerinaConnectorException("Conflicting configuration detected for listener " + "configuration id " + listenerConfig.getId()); } httpServerConnectorContext.incrementReferenceCount(); return httpServerConnectorContext.getServerConnector(); } if (isHTTPTraceLoggerEnabled()) { listenerConfig.setHttpTraceLogEnabled(true); } if (isHTTPAccessLoggerEnabled()) { listenerConfig.setHttpAccessLogEnabled(true); } serverBootstrapConfiguration = HttpConnectorUtil .getServerBootstrapConfiguration(trpConfig.getTransportProperties()); ServerConnector serverConnector = httpConnectorFactory.createServerConnector(serverBootstrapConfiguration, listenerConfig); httpServerConnectorContext = new HttpServerConnectorContext(serverConnector, listenerConfig); serverConnectorPool.put(serverConnector.getConnectorID(), httpServerConnectorContext); httpServerConnectorContext.incrementReferenceCount(); addStartupDelayedHTTPServerConnector(listenerInterface, serverConnector); return serverConnector; }
/** * @deprecated * @return the default listener configuration. */ @Deprecated public static ListenerConfiguration getDefault() { ListenerConfiguration defaultConfig; defaultConfig = new ListenerConfiguration(DEFAULT_KEY, "0.0.0.0", 8080); return defaultConfig; } private String id = DEFAULT_KEY;
private void setRequestSizeValidationConfig(Struct requestLimits, ListenerConfiguration listenerConfiguration) { long maxUriLength = requestLimits.getIntField(HttpConstants.REQUEST_LIMITS_MAXIMUM_URL_LENGTH); long maxHeaderSize = requestLimits.getIntField(HttpConstants.REQUEST_LIMITS_MAXIMUM_HEADER_SIZE); long maxEntityBodySize = requestLimits.getIntField(HttpConstants.REQUEST_LIMITS_MAXIMUM_ENTITY_BODY_SIZE); RequestSizeValidationConfig requestSizeValidationConfig = listenerConfiguration .getRequestSizeValidationConfig(); if (maxUriLength != -1) { if (maxUriLength >= 0) { requestSizeValidationConfig.setMaxUriLength(Math.toIntExact(maxUriLength)); } else { throw new BallerinaConnectorException("Invalid configuration found for maxUriLength : " + maxUriLength); } } if (maxHeaderSize != -1) { if (maxHeaderSize >= 0) { requestSizeValidationConfig.setMaxHeaderSize(Math.toIntExact(maxHeaderSize)); } else { throw new BallerinaConnectorException( "Invalid configuration found for maxHeaderSize : " + maxHeaderSize); } } if (maxEntityBodySize != -1) { if (maxEntityBodySize >= 0) { requestSizeValidationConfig.setMaxEntityBodySize(maxEntityBodySize); } else { throw new BallerinaConnectorException( "Invalid configuration found for maxEntityBodySize : " + maxEntityBodySize); } } }
private void setSslConfig(Struct sslConfig, ListenerConfiguration listenerConfiguration) { listenerConfiguration.setScheme(GrpcConstants.PROTOCOL_HTTPS); Struct trustStore = sslConfig.getStructField(ENDPOINT_CONFIG_TRUST_STORE); Struct keyStore = sslConfig.getStructField(ENDPOINT_CONFIG_KEY_STORE); listenerConfiguration.setKeyStoreFile(keyStoreFile); listenerConfiguration.setKeyStorePass(keyStorePassword); } else { listenerConfiguration.setServerKeyFile(keyFile); listenerConfiguration.setServerCertificates(certFile); if (StringUtils.isNotBlank(keyPassword)) { listenerConfiguration.setServerKeyPassword(keyPassword); listenerConfiguration.setVerifyClient(sslVerifyClient); if (trustStore == null && StringUtils.isNotBlank(sslVerifyClient) && StringUtils.isBlank(trustCerts)) { throw new BallerinaException( listenerConfiguration.setTrustStoreFile(trustStoreFile); listenerConfiguration.setTrustStorePass(trustStorePassword); } else if (StringUtils.isNotBlank(trustCerts)) { listenerConfiguration.setServerTrustCertificates(trustCerts); listenerConfiguration.setSSLProtocol(sslProtocol); long cacheSize = validateCert.getIntField(SSL_CONFIG_CACHE_SIZE); long cacheValidationPeriod = validateCert.getIntField(SSL_CONFIG_CACHE_VALIDITY_PERIOD); listenerConfiguration.setValidateCertEnabled(validateCertificateEnabled); if (validateCertificateEnabled) { if (cacheSize != 0) { listenerConfiguration.setCacheSize(Math.toIntExact(cacheSize));
public TransportsConfiguration () { ListenerConfiguration listenerConfiguration = new ListenerConfiguration(); listenerConfigurations = new HashSet<>(); listenerConfigurations.add(listenerConfiguration); SenderConfiguration senderConfiguration = new SenderConfiguration(); senderConfigurations = new HashSet<>(); senderConfigurations.add(senderConfiguration); }