Package org.opends.server.protocols.http
Class HTTPConnectionHandler
- java.lang.Object
-
- org.opends.server.api.ConnectionHandler<HttpConnectionHandlerCfg>
-
- org.opends.server.protocols.http.HTTPConnectionHandler
-
- All Implemented Interfaces:
Closeable,AutoCloseable,ConfigurationChangeListener<HttpConnectionHandlerCfg>,AlertGenerator
public class HTTPConnectionHandler extends ConnectionHandler<HttpConnectionHandlerCfg> implements ConfigurationChangeListener<HttpConnectionHandlerCfg>, AlertGenerator
This class defines a connection handler that will be used for communicating with clients over HTTP.The connection handler is responsible for starting/stopping the embedded web server.
-
-
Constructor Summary
Constructors Constructor Description HTTPConnectionHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddAdditionalMeters(MeterRegistryHolder registry)Computes additional meters that is specific to the connection handler implementation.protected voidaddAdditionalMonitorObjectClassNames(Attribute ocAttr)Adds the object class names that should be included in the monitor entry related to this connection handler to the provided attribute.ConfigChangeResultapplyConfigurationChange(HttpConnectionHandlerCfg config)Applies the configuration changes to this change listener.voidbind()Operates in a loop, accepting new connections and ensuring that requests on those connections are handled properly.voiddoClose()Closes this connection handler so that it will no longer accept new client connections.voiddoInitializeConnectionHandler(ServerContext serverContext, HttpConnectionHandlerCfg config)Initializes this connection handler provider based on the information in the provided connection handler configuration.Map<String,String>getAlerts()Retrieves information about the set of alerts that this generator may produce.Collection<ClientConnection>getClientConnections()Retrieves the set of active client connections that have been established through this connection handler.DngetComponentEntryDN()Retrieves the DN of the configuration entry with which this alert generator is associated.StringgetConfigurationName()Returns the name used for identifying this HTTP connection handler in the server configuration.StringgetConnectionHandlerName()Retrieves a name that may be used to refer to this connection handler.StringgetConnectionHandlerType()Returns the type of this connection handler.Collection<String>getEnabledSSLCipherSuites()Retrieves an unmodifiable set of enabled SSL cipher suites configured for this connection handler, if applicable.Collection<String>getEnabledSSLProtocols()Retrieves the set of enabled SSL protocols configured for this connection handler.Collection<com.forgerock.opendj.util.HostPort>getListeners()Retrieves information about the listener(s) that will be used to accept client connections.StringgetProtocol()Retrieves the name of the protocol used to communicate with clients.HttpStatisticsgetStatTracker()Returns the set of statistics maintained by this connection handler.booleanisConfigurationAcceptable(ServerContext serverContext, HttpConnectionHandlerCfg config, List<LocalizableMessage> unacceptableReasons)Indicates whether the provided configuration is acceptable for this connection handler.booleanisConfigurationChangeAcceptable(HttpConnectionHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)Indicates whether the proposed change to the configuration is acceptable to this change listener.voidtoString(StringBuilder buffer)Appends a string representation of this connection handler to the provided buffer.-
Methods inherited from class org.opends.server.api.ConnectionHandler
close, getNumRequestHandlers, getServerContext, initializeConnectionHandler, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.opends.server.api.AlertGenerator
getClassName
-
-
-
-
Method Detail
-
applyConfigurationChange
public ConfigChangeResult applyConfigurationChange(HttpConnectionHandlerCfg config)
Description copied from interface:ConfigurationChangeListenerApplies the configuration changes to this change listener.- Specified by:
applyConfigurationChangein interfaceConfigurationChangeListener<HttpConnectionHandlerCfg>- Parameters:
config- The new configuration containing the changes.- Returns:
- Returns information about the result of changing the configuration.
-
doClose
public void doClose()
Description copied from class:ConnectionHandlerCloses this connection handler so that it will no longer accept new client connections. Implementations should disconnect any existing connections and release any other resources associated with the connection handler.- Overrides:
doClosein classConnectionHandler<HttpConnectionHandlerCfg>
-
getAlerts
public Map<String,String> getAlerts()
Description copied from interface:AlertGeneratorRetrieves information about the set of alerts that this generator may produce. The map returned should be between the notification type for a particular notification and the human-readable description for that notification. This alert generator must not generate any alerts with types that are not contained in this list.- Specified by:
getAlertsin interfaceAlertGenerator- Returns:
- Information about the set of alerts that this generator may produce.
-
getClientConnections
public Collection<ClientConnection> getClientConnections()
Description copied from class:ConnectionHandlerRetrieves the set of active client connections that have been established through this connection handler.- Specified by:
getClientConnectionsin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The set of active client connections that have been established through this connection handler.
-
getComponentEntryDN
public Dn getComponentEntryDN()
Description copied from class:ConnectionHandlerRetrieves the DN of the configuration entry with which this alert generator is associated.- Specified by:
getComponentEntryDNin interfaceAlertGenerator- Specified by:
getComponentEntryDNin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The DN of the configuration entry with which this alert generator is associated.
-
getConnectionHandlerName
public String getConnectionHandlerName()
Description copied from class:ConnectionHandlerRetrieves a name that may be used to refer to this connection handler. Every connection handler instance (even handlers of the same type) must have a unique name.- Specified by:
getConnectionHandlerNamein classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- A unique name that may be used to refer to this connection handler.
-
getConnectionHandlerType
public String getConnectionHandlerType()
Description copied from class:ConnectionHandlerReturns the type of this connection handler. By default this returnsConnectionHandler.getProtocol(). It should be returning the insecure protocol version.- Overrides:
getConnectionHandlerTypein classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The type of this connection handler.
-
getConfigurationName
public String getConfigurationName()
Returns the name used for identifying this HTTP connection handler in the server configuration.The configuration name does not contain IP addressed neither port number.
getConnectionHandlerName()can be use to have such information amended to the configuration name.- Returns:
- A
Stringrepresenting the name used for identifying thisHTTPConnectionHandlerin the server configuration. - See Also:
getConnectionHandlerName()
-
getEnabledSSLCipherSuites
public Collection<String> getEnabledSSLCipherSuites()
Description copied from class:ConnectionHandlerRetrieves an unmodifiable set of enabled SSL cipher suites configured for this connection handler, if applicable. Implementations must return an empty set if use of SSL/TLS is not possible.- Overrides:
getEnabledSSLCipherSuitesin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The set of enabled SSL cipher suites configured for this connection handler.
-
getEnabledSSLProtocols
public Collection<String> getEnabledSSLProtocols()
Description copied from class:ConnectionHandlerRetrieves the set of enabled SSL protocols configured for this connection handler. Implementations must return an empty set if use of SSL/TLS is not possible.- Overrides:
getEnabledSSLProtocolsin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The set of enabled SSL protocols configured for this connection handler.
-
getListeners
public Collection<com.forgerock.opendj.util.HostPort> getListeners()
Description copied from class:ConnectionHandlerRetrieves information about the listener(s) that will be used to accept client connections.- Specified by:
getListenersin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- Information about the listener(s) that will be used to accept client connections, or an empty list if this connection handler does not accept connections from network clients.
-
getProtocol
public String getProtocol()
Description copied from class:ConnectionHandlerRetrieves the name of the protocol used to communicate with clients. It should take into account any special naming that may be needed to express any security mechanisms or other constraints in place (e.g., "LDAPS" for LDAP over SSL).- Specified by:
getProtocolin classConnectionHandler<HttpConnectionHandlerCfg>- Returns:
- The name of the protocol used to communicate with clients.
-
getStatTracker
public HttpStatistics getStatTracker()
Returns the set of statistics maintained by this connection handler.- Returns:
- The set of statistics maintained by this connection handler.
-
addAdditionalMeters
protected void addAdditionalMeters(MeterRegistryHolder registry)
Description copied from class:ConnectionHandlerComputes additional meters that is specific to the connection handler implementation. The default implementation is to do nothing.- Overrides:
addAdditionalMetersin classConnectionHandler<HttpConnectionHandlerCfg>- Parameters:
registry- where additional meters should be added.
-
addAdditionalMonitorObjectClassNames
protected void addAdditionalMonitorObjectClassNames(Attribute ocAttr)
Description copied from class:ConnectionHandlerAdds the object class names that should be included in the monitor entry related to this connection handler to the provided attribute.- Overrides:
addAdditionalMonitorObjectClassNamesin classConnectionHandler<HttpConnectionHandlerCfg>- Parameters:
ocAttr- The object class attribute on which the object class names are added.
-
doInitializeConnectionHandler
public void doInitializeConnectionHandler(ServerContext serverContext, HttpConnectionHandlerCfg config) throws InitializationException
Description copied from class:ConnectionHandlerInitializes this connection handler provider based on the information in the provided connection handler configuration.- Specified by:
doInitializeConnectionHandlerin classConnectionHandler<HttpConnectionHandlerCfg>- Parameters:
serverContext- The server context.config- The connection handler configuration that contains the information to use to initialize this connection handler.- Throws:
InitializationException- If a problem occurs during initialization that is not related to the server configuration.
-
isConfigurationAcceptable
public boolean isConfigurationAcceptable(ServerContext serverContext, HttpConnectionHandlerCfg config, List<LocalizableMessage> unacceptableReasons)
Description copied from class:ConnectionHandlerIndicates whether the provided configuration is acceptable for this connection handler. It should be possible to call this method on an uninitialized connection handler instance in order to determine whether the connection handler would be able to use the provided configuration.- Overrides:
isConfigurationAcceptablein classConnectionHandler<HttpConnectionHandlerCfg>- Parameters:
serverContext- The server contextconfig- The connection handler configuration for which to make the determination.unacceptableReasons- A list that may be used to hold the reasons that the provided configuration is not acceptable.- Returns:
trueif the provided configuration is acceptable for this connection handler, orfalseif not.
-
isConfigurationChangeAcceptable
public boolean isConfigurationChangeAcceptable(HttpConnectionHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)
Description copied from interface:ConfigurationChangeListenerIndicates whether the proposed change to the configuration is acceptable to this change listener.- Specified by:
isConfigurationChangeAcceptablein interfaceConfigurationChangeListener<HttpConnectionHandlerCfg>- Parameters:
configuration- The new configuration containing the changes.unacceptableReasons- A list that can be used to hold messages about why the provided configuration is not acceptable.- Returns:
- Returns
trueif the proposed change is acceptable, orfalseif it is not.
-
bind
public void bind() throws IOExceptionDescription copied from class:ConnectionHandlerOperates in a loop, accepting new connections and ensuring that requests on those connections are handled properly.- Specified by:
bindin classConnectionHandler<HttpConnectionHandlerCfg>- Throws:
IOException- If theConnectionHandlercannot be bound.
-
toString
public void toString(StringBuilder buffer)
Description copied from class:ConnectionHandlerAppends a string representation of this connection handler to the provided buffer.- Specified by:
toStringin classConnectionHandler<HttpConnectionHandlerCfg>- Parameters:
buffer- The buffer to which the information should be appended.
-
-