Search in sources :

Example 6 with Http

use of org.glassfish.grizzly.config.dom.Http in project Payara by payara.

the class GetHostAndPortCommand method getHostAndPort.

private HostAndPort getHostAndPort(HttpService httpService, boolean securityEnabled) {
    List<NetworkListener> httpListenerList = httpService.getParent(Config.class).getNetworkConfig().getNetworkListeners().getNetworkListener();
    for (NetworkListener httpListener : httpListenerList) {
        if (!Boolean.valueOf(httpListener.getEnabled())) {
            continue;
        }
        final Protocol protocol = httpListener.findHttpProtocol();
        final Http http = protocol.getHttp();
        if (http.getDefaultVirtualServer().equals("__asadmin")) {
            continue;
        }
        if (Boolean.valueOf(protocol.getSecurityEnabled()) == securityEnabled) {
            String serverName = http.getServerName();
            if (serverName == null || serverName.trim().equals("")) {
                serverName = DeploymentCommandUtils.getLocalHostName();
            }
            String portStr = httpListener.getPort();
            String redirPort = http.getRedirectPort();
            if (redirPort != null && !redirPort.trim().equals("")) {
                portStr = redirPort;
            }
            int port = Integer.parseInt(portStr);
            return new HostAndPort(serverName, port, securityEnabled);
        }
    }
    return null;
}
Also used : HostAndPort(com.sun.enterprise.util.HostAndPort) Config(com.sun.enterprise.config.serverbeans.Config) Http(org.glassfish.grizzly.config.dom.Http) Protocol(org.glassfish.grizzly.config.dom.Protocol) RestEndpoint(org.glassfish.api.admin.RestEndpoint) NetworkListener(org.glassfish.grizzly.config.dom.NetworkListener)

Example 7 with Http

use of org.glassfish.grizzly.config.dom.Http in project Payara by payara.

the class DynamicConfigListener method changed.

@Override
public synchronized UnprocessedChangeEvents changed(final PropertyChangeEvent[] events) {
    return ConfigSupport.sortAndDispatch(events, new Changed() {

        @Override
        public <T extends ConfigBeanProxy> NotProcessed changed(TYPE type, Class<T> tClass, T t) {
            if (logger.isLoggable(Level.FINE)) {
                logger.log(Level.FINE, "NetworkConfig changed {0} {1} {2}", new Object[] { type, tClass, t });
            }
            if (tClass == NetworkListener.class && t instanceof NetworkListener) {
                return processNetworkListener(type, (NetworkListener) t, events);
            } else if (tClass == Http.class && t instanceof Http) {
                return processProtocol(type, (Protocol) t.getParent(), events);
            } else if (tClass == FileCache.class && t instanceof FileCache) {
                return processProtocol(type, (Protocol) t.getParent().getParent(), null);
            } else if (tClass == Ssl.class && t instanceof Ssl) {
                /*
                         * Make sure the SSL parent is in fact a protocol.  It could
                         * be a jmx-connector.
                     */
                final ConfigBeanProxy parent = t.getParent();
                if (parent instanceof Protocol) {
                    return processProtocol(type, (Protocol) parent, null);
                }
            } else if (tClass == Protocol.class && t instanceof Protocol) {
                return processProtocol(type, (Protocol) t, null);
            } else if (tClass == ThreadPool.class && t instanceof ThreadPool) {
                NotProcessed notProcessed = null;
                ThreadPool threadPool = (ThreadPool) t;
                for (NetworkListener listener : threadPool.findNetworkListeners()) {
                    notProcessed = processNetworkListener(type, listener, null);
                }
                // Throw an unprocessed event change if one hasn't already if HTTP or ThreadPool monitoring is enabled.
                MonitoringService ms = config.getMonitoringService();
                String threadPoolLevel = ms.getModuleMonitoringLevels().getThreadPool();
                String httpServiceLevel = ms.getModuleMonitoringLevels().getHttpService();
                if (((threadPoolLevel != null && !threadPoolLevel.equals(OFF)) || (httpServiceLevel != null && !httpServiceLevel.equals(OFF))) && notProcessed == null) {
                    notProcessed = new NotProcessed("Monitoring statistics will be incorrect for " + threadPool.getName() + " until restart due to changed attribute(s).");
                }
                return notProcessed;
            } else if (tClass == Transport.class && t instanceof Transport) {
                NotProcessed notProcessed = null;
                for (NetworkListener listener : ((Transport) t).findNetworkListeners()) {
                    notProcessed = processNetworkListener(type, listener, null);
                }
                return notProcessed;
            } else if (tClass == VirtualServer.class && t instanceof VirtualServer && !grizzlyService.hasMapperUpdateListener()) {
                return processVirtualServer(type, (VirtualServer) t);
            } else if (tClass == SystemProperty.class && t instanceof SystemProperty) {
                NetworkConfig networkConfig = config.getNetworkConfig();
                if ((networkConfig != null) && ((SystemProperty) t).getName().endsWith("LISTENER_PORT")) {
                    for (NetworkListener listener : networkConfig.getNetworkListeners().getNetworkListener()) {
                        if (listener.getPort().equals(((SystemProperty) t).getValue())) {
                            return processNetworkListener(Changed.TYPE.CHANGE, listener, events);
                        }
                    }
                }
                return null;
            }
            return null;
        }
    }, logger);
}
Also used : ThreadPool(org.glassfish.grizzly.config.dom.ThreadPool) NetworkConfig(org.glassfish.grizzly.config.dom.NetworkConfig) Http(org.glassfish.grizzly.config.dom.Http) Ssl(org.glassfish.grizzly.config.dom.Ssl) SystemProperty(com.sun.enterprise.config.serverbeans.SystemProperty) VirtualServer(com.sun.enterprise.config.serverbeans.VirtualServer) FileCache(org.glassfish.grizzly.config.dom.FileCache) ConfigBeanProxy(org.jvnet.hk2.config.ConfigBeanProxy) Changed(org.jvnet.hk2.config.Changed) NotProcessed(org.jvnet.hk2.config.NotProcessed) Protocol(org.glassfish.grizzly.config.dom.Protocol) Transport(org.glassfish.grizzly.config.dom.Transport) MonitoringService(com.sun.enterprise.config.serverbeans.MonitoringService) NetworkListener(org.glassfish.grizzly.config.dom.NetworkListener)

Example 8 with Http

use of org.glassfish.grizzly.config.dom.Http in project Payara by payara.

the class CreateNetworkListener method findVirtualServer.

private VirtualServer findVirtualServer(Protocol protocol) {
    String name = null;
    final Http http = protocol.getHttp();
    if (http != null) {
        name = http.getDefaultVirtualServer();
    } else {
        final List<ProtocolFinder> finders = protocol.getPortUnification().getProtocolFinder();
        for (ProtocolFinder finder : finders) {
            if (name == null) {
                final Protocol p = finder.findProtocol();
                if (p.getHttp() != null) {
                    name = p.getHttp().getDefaultVirtualServer();
                }
            }
        }
    }
    return config.getHttpService().getVirtualServerByName(name);
}
Also used : Http(org.glassfish.grizzly.config.dom.Http) Protocol(org.glassfish.grizzly.config.dom.Protocol) ProtocolFinder(org.glassfish.grizzly.config.dom.ProtocolFinder)

Example 9 with Http

use of org.glassfish.grizzly.config.dom.Http in project Payara by payara.

the class GenericGrizzlyListener method configureSubProtocol.

protected void configureSubProtocol(final ServiceLocator habitat, final NetworkListener networkListener, final Protocol protocol, final FilterChainBuilder filterChainBuilder) {
    if (protocol.getHttp() != null) {
        final Http http = protocol.getHttp();
        configureHttpProtocol(habitat, networkListener, http, filterChainBuilder, Boolean.valueOf(protocol.getSecurityEnabled()));
    } else if (protocol.getPortUnification() != null) {
        // Port unification
        final PortUnification pu = protocol.getPortUnification();
        final String puFilterClassname = pu.getClassname();
        PUFilter puFilter = null;
        if (puFilterClassname != null) {
            try {
                puFilter = Utils.newInstance(habitat, PUFilter.class, puFilterClassname, puFilterClassname);
                configureElement(habitat, networkListener, pu, puFilter);
            } catch (Exception e) {
                LOGGER.log(Level.WARNING, "Can not initialize port unification filter: " + puFilterClassname + " default filter will be used instead", e);
            }
        }
        if (puFilter == null) {
            puFilter = new PUFilter();
        }
        List<org.glassfish.grizzly.config.dom.ProtocolFinder> findersConfig = pu.getProtocolFinder();
        for (org.glassfish.grizzly.config.dom.ProtocolFinder finderConfig : findersConfig) {
            final String finderClassname = finderConfig.getClassname();
            try {
                final ProtocolFinder protocolFinder = Utils.newInstance(habitat, ProtocolFinder.class, finderClassname, finderClassname);
                configureElement(habitat, networkListener, finderConfig, protocolFinder);
                final Protocol subProtocol = finderConfig.findProtocol();
                if (subProtocol.getHttp() != null) {
                    if (LOGGER.isLoggable(WARNING)) {
                        LOGGER.log(WARNING, "HTTP/2 (enabled by default) is unsupported with port " + "unification and will be disabled for network listener {0}.", networkListener.getName());
                    }
                    skipHttp2 = true;
                }
                final FilterChainBuilder subProtocolFilterChainBuilder = puFilter.getPUFilterChainBuilder();
                // If subprotocol is secured - we need to wrap it under SSLProtocolFinder
                if (Boolean.valueOf(subProtocol.getSecurityEnabled())) {
                    final PUFilter extraSslPUFilter = new PUFilter();
                    final Filter addedSSLFilter = configureSsl(habitat, getSsl(subProtocol), subProtocolFilterChainBuilder);
                    subProtocolFilterChainBuilder.add(extraSslPUFilter);
                    final FilterChainBuilder extraSslPUFilterChainBuilder = extraSslPUFilter.getPUFilterChainBuilder();
                    try {
                        // temporary add SSL Filter, so subprotocol
                        // will see it
                        extraSslPUFilterChainBuilder.add(addedSSLFilter);
                        configureSubProtocol(habitat, networkListener, subProtocol, extraSslPUFilterChainBuilder);
                    } finally {
                        // remove SSL Filter
                        extraSslPUFilterChainBuilder.remove(addedSSLFilter);
                    }
                    extraSslPUFilter.register(protocolFinder, extraSslPUFilterChainBuilder.build());
                    puFilter.register(new SSLProtocolFinder(new SSLConfigurator(habitat, subProtocol.getSsl())), subProtocolFilterChainBuilder.build());
                } else {
                    configureSubProtocol(habitat, networkListener, subProtocol, subProtocolFilterChainBuilder);
                    puFilter.register(protocolFinder, subProtocolFilterChainBuilder.build());
                }
            } catch (Exception e) {
                LOGGER.log(Level.WARNING, "Can not initialize sub protocol. Finder: " + finderClassname, e);
            }
        }
        filterChainBuilder.add(puFilter);
    } else if (protocol.getHttpRedirect() != null) {
        filterChainBuilder.add(createHttpServerCodecFilter());
        final HttpRedirectFilter filter = new HttpRedirectFilter();
        filter.configure(habitat, networkListener, protocol.getHttpRedirect());
        filterChainBuilder.add(filter);
    } else {
        ProtocolChainInstanceHandler pcihConfig = protocol.getProtocolChainInstanceHandler();
        if (pcihConfig == null) {
            LOGGER.log(Level.WARNING, "Empty protocol declaration");
            return;
        }
        ProtocolChain filterChainConfig = pcihConfig.getProtocolChain();
        for (ProtocolFilter filterConfig : filterChainConfig.getProtocolFilter()) {
            final String filterClassname = filterConfig.getClassname();
            try {
                final Filter filter = loadFilter(habitat, filterConfig.getName(), filterClassname);
                configureElement(habitat, networkListener, filterConfig, filter);
                filterChainBuilder.add(filter);
            } catch (Exception e) {
                LOGGER.log(Level.WARNING, "Can not initialize protocol filter: " + filterClassname, e);
                throw new IllegalStateException("Can not initialize protocol filter: " + filterClassname);
            }
        }
    }
}
Also used : PUFilter(org.glassfish.grizzly.portunif.PUFilter) PortUnification(org.glassfish.grizzly.config.dom.PortUnification) Http(org.glassfish.grizzly.config.dom.Http) IOException(java.io.IOException) SSLProtocolFinder(org.glassfish.grizzly.portunif.finders.SSLProtocolFinder) ProtocolFinder(org.glassfish.grizzly.portunif.ProtocolFinder) HttpRedirectFilter(org.glassfish.grizzly.config.portunif.HttpRedirectFilter) PUFilter(org.glassfish.grizzly.portunif.PUFilter) Filter(org.glassfish.grizzly.filterchain.Filter) TransportFilter(org.glassfish.grizzly.filterchain.TransportFilter) IdleTimeoutFilter(org.glassfish.grizzly.utils.IdleTimeoutFilter) HttpServerFilter(org.glassfish.grizzly.http.server.HttpServerFilter) CompressionEncodingFilter(org.glassfish.grizzly.http.server.CompressionEncodingFilter) HttpRedirectFilter(org.glassfish.grizzly.config.portunif.HttpRedirectFilter) FileCacheFilter(org.glassfish.grizzly.http.server.FileCacheFilter) SSLBaseFilter(org.glassfish.grizzly.ssl.SSLBaseFilter) ProtocolFilter(org.glassfish.grizzly.config.dom.ProtocolFilter) ProtocolChainInstanceHandler(org.glassfish.grizzly.config.dom.ProtocolChainInstanceHandler) ProtocolChain(org.glassfish.grizzly.config.dom.ProtocolChain) List(java.util.List) ArrayList(java.util.ArrayList) FilterChainBuilder(org.glassfish.grizzly.filterchain.FilterChainBuilder) SSLProtocolFinder(org.glassfish.grizzly.portunif.finders.SSLProtocolFinder) Protocol(org.glassfish.grizzly.config.dom.Protocol) PUProtocol(org.glassfish.grizzly.portunif.PUProtocol) ProtocolFilter(org.glassfish.grizzly.config.dom.ProtocolFilter)

Example 10 with Http

use of org.glassfish.grizzly.config.dom.Http in project Payara by payara.

the class AdminRESTConfigUpgrade method postConstruct.

@Override
public void postConstruct() {
    for (Config config : configs.getConfig()) {
        // we only want to handle configs that have an admin listener
        try {
            if (config.getAdminListener() == null) {
                LogRecord lr = new LogRecord(Level.FINE, String.format("Skipping config %s. No admin listener.", config.getName()));
                lr.setLoggerName(getClass().getName());
                EarlyLogHandler.earlyMessages.add(lr);
                continue;
            }
        } catch (IllegalStateException ise) {
            /*
                 * I've only seen the exception rather than
                 * getAdminListener returning null. This should
                 * typically happen for any config besides
                 * <server-config>, but we'll proceed if any
                 * config has an admin listener.
                 */
            LogRecord lr = new LogRecord(Level.FINE, String.format("Skipping config %s. getAdminListener threw: %s", config.getName(), ise.getLocalizedMessage()));
            lr.setLoggerName(getClass().getName());
            EarlyLogHandler.earlyMessages.add(lr);
            continue;
        }
        Protocols ps = config.getNetworkConfig().getProtocols();
        if (ps != null) {
            for (Protocol p : ps.getProtocol()) {
                Http h = p.getHttp();
                if (h != null && "__asadmin".equals(h.getDefaultVirtualServer())) {
                    try {
                        ConfigSupport.apply(new HttpConfigCode(), h);
                    } catch (TransactionFailure tf) {
                        LogRecord lr = new LogRecord(Level.SEVERE, "Could not upgrade http element for admin console: " + tf);
                        lr.setLoggerName(getClass().getName());
                        EarlyLogHandler.earlyMessages.add(lr);
                    }
                }
            }
        }
    }
}
Also used : TransactionFailure(org.jvnet.hk2.config.TransactionFailure) Protocols(org.glassfish.grizzly.config.dom.Protocols) LogRecord(java.util.logging.LogRecord) Config(com.sun.enterprise.config.serverbeans.Config) Http(org.glassfish.grizzly.config.dom.Http) Protocol(org.glassfish.grizzly.config.dom.Protocol)

Aggregations

Http (org.glassfish.grizzly.config.dom.Http)11 Protocol (org.glassfish.grizzly.config.dom.Protocol)9 NetworkListener (org.glassfish.grizzly.config.dom.NetworkListener)7 Protocols (org.glassfish.grizzly.config.dom.Protocols)4 TransactionFailure (org.jvnet.hk2.config.TransactionFailure)4 Config (com.sun.enterprise.config.serverbeans.Config)3 NetworkConfig (org.glassfish.grizzly.config.dom.NetworkConfig)3 List (java.util.List)2 FileCache (org.glassfish.grizzly.config.dom.FileCache)2 Ssl (org.glassfish.grizzly.config.dom.Ssl)2 ThreadPool (org.glassfish.grizzly.config.dom.ThreadPool)2 Transport (org.glassfish.grizzly.config.dom.Transport)2 Test (org.junit.Test)2 HttpService (com.sun.enterprise.config.serverbeans.HttpService)1 JavaConfig (com.sun.enterprise.config.serverbeans.JavaConfig)1 MonitoringService (com.sun.enterprise.config.serverbeans.MonitoringService)1 SystemProperty (com.sun.enterprise.config.serverbeans.SystemProperty)1 VirtualServer (com.sun.enterprise.config.serverbeans.VirtualServer)1 HostAndPort (com.sun.enterprise.util.HostAndPort)1 PropertyChangeEvent (java.beans.PropertyChangeEvent)1