Example usage for io.netty.util DomainNameMappingBuilder build

List of usage examples for io.netty.util DomainNameMappingBuilder build

Introduction

In this page you can find the example usage for io.netty.util DomainNameMappingBuilder build.

Prototype

public DomainNameMapping<V> build() 

Source Link

Document

Creates a new instance of immutable DomainNameMapping Attempts to add new mappings to the result object will cause UnsupportedOperationException to be thrown

Usage

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()));
}