List of usage examples for io.netty.util DomainNameMappingBuilder build
public DomainNameMapping<V> build()
From source file:com.liferay.sync.engine.lan.server.file.LanFileServerInitializer.java
License:Open Source License
public void updateDomainNameMapping() { DomainNameMappingBuilder<SslContext> domainNameMappingBuilder = null; for (SyncAccount syncAccount : SyncAccountService.findAll()) { if (!syncAccount.isActive() || !syncAccount.isLanEnabled()) { continue; }/*from ww w .j av a 2 s .c o m*/ SslContext sslContext = null; try { X509Certificate x509Certificate = LanPEMParserUtil .parseX509Certificate(syncAccount.getLanCertificate()); SslContextBuilder sslContextBuilder = SslContextBuilder .forServer(LanPEMParserUtil.parsePrivateKey(syncAccount.getLanKey()), x509Certificate); sslContextBuilder.clientAuth(ClientAuth.REQUIRE); sslContextBuilder.sslProvider(SslProvider.JDK); sslContextBuilder.trustManager(x509Certificate); sslContext = sslContextBuilder.build(); } catch (Exception e) { _logger.error(e.getMessage(), e); continue; } if (domainNameMappingBuilder == null) { domainNameMappingBuilder = new DomainNameMappingBuilder<>(sslContext); } domainNameMappingBuilder.add(LanClientUtil.getSNIHostname(syncAccount.getLanServerUuid()), sslContext); } if (domainNameMappingBuilder == null) { return; } _domainNameMapping = domainNameMappingBuilder.build(); }
From source file:com.linecorp.armeria.server.Server.java
License:Apache License
Server(ServerConfig config) {
this.config = requireNonNull(config, "config");
config.setServer(this);
// Pre-populate the domain name mapping for later matching.
SslContext lastSslContext = null;/*from w ww . ja va2 s . c o m*/
for (VirtualHost h : config.virtualHosts()) {
lastSslContext = h.sslContext();
}
if (lastSslContext == null) {
sslContexts = null;
for (ServerPort p : config.ports()) {
if (p.protocol().isTls()) {
throw new IllegalArgumentException("no SSL context specified");
}
}
} else {
final DomainNameMappingBuilder<SslContext> mappingBuilder = new DomainNameMappingBuilder<>(
lastSslContext);
for (VirtualHost h : config.virtualHosts()) {
final SslContext sslCtx = h.sslContext();
if (sslCtx != null) {
mappingBuilder.add(h.hostnamePattern(), sslCtx);
}
}
sslContexts = mappingBuilder.build();
}
// Invoke the serviceAdded() method in Service so that it can keep the reference to this Server or
// add a listener to it.
config.serviceConfigs().forEach(cfg -> ServiceCallbackInvoker.invokeServiceAdded(cfg, cfg.service()));
}
From source file:com.linecorp.armeria.server.ServerConfig.java
License:Apache License
ServerConfig(Iterable<ServerPort> ports, VirtualHost defaultVirtualHost, Iterable<VirtualHost> virtualHosts,
int numWorkers, int maxPendingRequests, int maxConnections, long idleTimeoutMillis,
long defaultRequestTimeoutMillis, long defaultMaxRequestLength, Duration gracefulShutdownQuietPeriod,
Duration gracefulShutdownTimeout, Executor blockingTaskExecutor, String serviceLoggerPrefix) {
requireNonNull(ports, "ports");
requireNonNull(virtualHosts, "virtualHosts");
requireNonNull(defaultVirtualHost, "defaultVirtualHost");
// Set the primitive properties.
this.numWorkers = validateNumWorkers(numWorkers);
this.maxPendingRequests = validateMaxPendingRequests(maxPendingRequests);
this.maxConnections = validateMaxConnections(maxConnections);
this.idleTimeoutMillis = validateIdleTimeoutMillis(idleTimeoutMillis);
this.defaultRequestTimeoutMillis = validateDefaultRequestTimeoutMillis(defaultRequestTimeoutMillis);
this.defaultMaxRequestLength = validateDefaultMaxRequestLength(defaultMaxRequestLength);
this.gracefulShutdownQuietPeriod = validateNonNegative(requireNonNull(gracefulShutdownQuietPeriod),
"gracefulShutdownQuietPeriod");
this.gracefulShutdownTimeout = validateNonNegative(requireNonNull(gracefulShutdownTimeout),
"gracefulShutdownTimeout");
validateGreaterThanOrEqual(gracefulShutdownTimeout, "gracefulShutdownTimeout", gracefulShutdownQuietPeriod,
"gracefulShutdownQuietPeriod");
requireNonNull(blockingTaskExecutor, "blockingTaskExecutor");
if (blockingTaskExecutor instanceof ExecutorService) {
this.blockingTaskExecutor = new InterminableExecutorService((ExecutorService) blockingTaskExecutor);
} else {//from ww w . j a v a2s .c o m
this.blockingTaskExecutor = new ExecutorBasedExecutorService(blockingTaskExecutor);
}
this.serviceLoggerPrefix = ServiceConfig.validateLoggerName(serviceLoggerPrefix, "serviceLoggerPrefix");
// Set localAddresses.
final List<ServerPort> portsCopy = new ArrayList<>();
for (ServerPort p : ports) {
if (p == null) {
break;
}
portsCopy.add(p);
}
if (portsCopy.isEmpty()) {
throw new IllegalArgumentException("no ports in the server");
}
this.ports = Collections.unmodifiableList(portsCopy);
// Set virtual host definitions and initialize their domain name mapping.
defaultVirtualHost = normalizeDefaultVirtualHost(defaultVirtualHost, portsCopy);
final DomainNameMappingBuilder<VirtualHost> mappingBuilder = new DomainNameMappingBuilder<>(
defaultVirtualHost);
final List<VirtualHost> virtualHostsCopy = new ArrayList<>();
for (VirtualHost h : virtualHosts) {
if (h == null) {
break;
}
virtualHostsCopy.add(h);
mappingBuilder.add(h.hostnamePattern(), h);
}
virtualHostMapping = mappingBuilder.build();
// Add the default VirtualHost to the virtualHosts so that a user can retrieve all VirtualHosts
// via virtualHosts(). i.e. no need to check defaultVirtualHost().
virtualHostsCopy.add(defaultVirtualHost);
// Sets the parent of VirtualHost to this configuration.
virtualHostsCopy.forEach(h -> h.setServerConfig(this));
if (virtualHostsCopy.stream().allMatch(h -> h.serviceConfigs().isEmpty())) {
throw new IllegalArgumentException("no services in the server");
}
this.virtualHosts = Collections.unmodifiableList(virtualHostsCopy);
this.defaultVirtualHost = defaultVirtualHost;
// Build the complete list of the services available in this server.
services = Collections.unmodifiableList(
virtualHostsCopy.stream().flatMap(h -> h.serviceConfigs().stream()).collect(Collectors.toList()));
}