Class AbstractFactoryManager
- All Implemented Interfaces:
Closeable,AutoCloseable,Channel,AttributeRepository,AttributeStore,ChannelListenerManager,ChannelStreamWriterResolver,ChannelStreamWriterResolverManager,Closeable,FactoryManager,PortForwardingEventListenerManager,IoServiceEventListenerManager,KexExtensionHandlerManager,KexFactoryManager,PropertyResolver,ReservedSessionMessagesManager,SessionDisconnectHandlerManager,SessionHeartbeatController,SessionListenerManager,UnknownChannelReferenceHandlerManager,SignatureFactoriesHolder,SignatureFactoriesManager
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
AbstractCloseable.StateNested classes/interfaces inherited from interface org.apache.sshd.common.AttributeRepository
AttributeRepository.AttributeKey<T>Nested classes/interfaces inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
SessionHeartbeatController.HeartbeatType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected SshAgentFactoryprivate final Map<AttributeRepository.AttributeKey<?>, Object> protected List<? extends ChannelFactory> protected final ChannelListenerprotected final Collection<ChannelListener> private ChannelStreamWriterResolverprivate IoServiceEventListenerprotected ScheduledExecutorServiceprotected FileSystemFactoryprotected ForwarderFactoryprotected ForwardingFilterprotected List<RequestHandler<ConnectionService>> protected IoServiceFactoryprotected IoServiceFactoryFactoryprivate PropertyResolverprivate ReservedSessionMessagesHandlerprotected List<? extends ServiceFactory> private SessionDisconnectHandlerprotected final SessionListenerprotected final Collection<SessionListener> protected SessionTimeoutListenerprotected booleanprotected ScheduledFuture<?> protected final PortForwardingEventListenerprotected final Collection<PortForwardingEventListener> private UnknownChannelReferenceHandlerFields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, stateFields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
logFields inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolver
NONEFields inherited from interface org.apache.sshd.common.FactoryManager
DEFAULT_VERSIONFields inherited from interface org.apache.sshd.common.PropertyResolver
EMPTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChannelListener(ChannelListener listener) Add a channel listenervoidAdd a port forwarding listenervoidaddSessionListener(SessionListener listener) Add a session listener.protected voidvoidRemoves all currently stored user-defined attributes<T> TcomputeAttributeIfAbsent(AttributeRepository.AttributeKey<T> key, Function<? super AttributeRepository.AttributeKey<T>, ? extends T> resolver) If the specified key is not already associated with a value (or is mapped tonull), attempts to compute its value using the given mapping function and enters it into this map unlessnull.protected SessionTimeoutListenerRetrieve the agent factory for creatingSshAgentobjects.<T> TReturns the value of the user-defined attribute.intList<? extends ChannelFactory> Retrieve the list of named factories forChannelobjects.Retrieve theFileSystemFactoryto be used to traverse the file system.Retrieve the forwarder factory used to support forwarding.Retrieve theForwardingFilterto be used by the SSH server.Retrieve the list of global request handlers.intA map of properties that can be used to configure the SSH server or client.Retrieve theRandomfactory to be used.Retrieve theScheduledExecutorServiceto be used.List<? extends ServiceFactory> Retrieve the list of SSHServicefactories.An upper case string identifying the version of the software used on client or server side.<T> TRemoves the user-defined attributevoidremoveChannelListener(ChannelListener listener) Remove a channel listenervoidRemove a port forwarding listenervoidremoveSessionListener(SessionListener listener) Remove a session listener.protected voidremoveSessionTimeout(AbstractSessionFactory<?, ?> sessionFactory) Check if current manager has a specific handler set for it - if not, try and resolve one from the "parent" container (if any)voidsetAgentFactory(SshAgentFactory agentFactory) <T> TsetAttribute(AttributeRepository.AttributeKey<T> key, T value) Sets a user-defined attribute.voidsetChannelFactories(List<? extends ChannelFactory> channelFactories) voidvoidsetFileSystemFactory(FileSystemFactory fileSystemFactory) voidsetForwarderFactory(ForwarderFactory forwarderFactory) voidsetForwardingFilter(ForwardingFilter forwardingFilter) voidsetGlobalRequestHandlers(List<RequestHandler<ConnectionService>> globalRequestHandlers) voidvoidsetIoServiceFactoryFactory(IoServiceFactoryFactory ioServiceFactory) voidsetNioWorkers(int nioWorkers) voidvoidsetRandomFactory(Factory<? extends Random> randomFactory) voidvoidvoidsetScheduledExecutorService(ScheduledExecutorService executor, boolean shutdownExecutor) voidsetServiceFactories(List<? extends ServiceFactory> serviceFactories) voidsetSessionDisconnectHandler(SessionDisconnectHandler sessionDisconnectHandler) voidsetUnknownChannelReferenceHandler(UnknownChannelReferenceHandler unknownChannelReferenceHandler) protected voidsetupSessionTimeout(AbstractSessionFactory<?, ?> sessionFactory) protected voidstopSessionTimeoutListener(AbstractSessionFactory<?, ?> sessionFactory) Methods inherited from class org.apache.sshd.common.kex.AbstractKexFactoryManager
getCipherFactories, getCompressionFactories, getDelegate, getKexExtensionHandler, getKeyExchangeFactories, getMacFactories, getSignatureFactories, resolveEffectiveFactories, resolveEffectiveProvider, setCipherFactories, setCompressionFactories, setKexExtensionHandler, setKeyExchangeFactories, setMacFactories, setSignatureFactoriesMethods inherited from class org.apache.sshd.common.util.closeable.AbstractInnerCloseable
doCloseGracefully, doCloseImmediately, getInnerCloseableMethods inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
addCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, preClose, removeCloseFutureListenerMethods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warnMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolverManager
resolveChannelStreamWriter, resolveChannelStreamWriterResolverMethods inherited from interface org.apache.sshd.common.FactoryManager
getAgentForwardingFilter, getTcpForwardingFilter, getX11ForwardingFilter, resolveAttributeMethods inherited from interface org.apache.sshd.common.kex.extension.KexExtensionHandlerManager
getKexExtensionHandler, setKexExtensionHandlerMethods inherited from interface org.apache.sshd.common.kex.KexFactoryManager
getCipherFactories, getCipherFactoriesNameList, getCipherFactoriesNames, getCompressionFactories, getCompressionFactoriesNameList, getCompressionFactoriesNames, getKeyExchangeFactories, getMacFactories, getMacFactoriesNameList, getMacFactoriesNames, setCipherFactories, setCipherFactoriesNameList, setCipherFactoriesNames, setCipherFactoriesNames, setCompressionFactories, setCompressionFactoriesNameList, setCompressionFactoriesNames, setCompressionFactoriesNames, setKeyExchangeFactories, setMacFactories, setMacFactoriesNameList, setMacFactoriesNames, setMacFactoriesNamesMethods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, getString, getStringProperty, isEmptyMethods inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
disableSessionHeartbeat, getSessionHeartbeatInterval, getSessionHeartbeatType, setSessionHeartbeat, setSessionHeartbeatMethods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesHolder
getSignatureFactories, getSignatureFactoriesNameList, getSignatureFactoriesNamesMethods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesManager
setSignatureFactories, setSignatureFactoriesNameList, setSignatureFactoriesNames, setSignatureFactoriesNames
-
Field Details
-
ioServiceFactoryFactory
-
ioServiceFactory
-
randomFactory
-
channelFactories
-
agentFactory
-
executor
-
shutdownExecutor
protected boolean shutdownExecutor -
forwarderFactory
-
forwardingFilter
-
fileSystemFactory
-
serviceFactories
-
globalRequestHandlers
-
sessionTimeoutListener
-
timeoutListenerFuture
-
sessionListeners
-
sessionListenerProxy
-
channelListeners
-
channelListenerProxy
-
tunnelListeners
-
tunnelListenerProxy
-
properties
-
attributes
-
parentResolver
-
reservedSessionMessagesHandler
-
sessionDisconnectHandler
-
channelStreamWriterResolver
-
unknownChannelReferenceHandler
-
eventListener
-
-
Constructor Details
-
AbstractFactoryManager
protected AbstractFactoryManager()
-
-
Method Details
-
getIoServiceFactory
- Specified by:
getIoServiceFactoryin interfaceFactoryManager
-
getIoServiceFactoryFactory
-
setIoServiceFactoryFactory
-
getIoServiceEventListener
- Specified by:
getIoServiceEventListenerin interfaceIoServiceEventListenerManager
-
setIoServiceEventListener
- Specified by:
setIoServiceEventListenerin interfaceIoServiceEventListenerManager
-
getRandomFactory
Description copied from interface:FactoryManagerRetrieve theRandomfactory to be used.- Specified by:
getRandomFactoryin interfaceFactoryManager- Returns:
- The
Randomfactory, nevernull
-
setRandomFactory
-
getProperties
Description copied from interface:PropertyResolverA map of properties that can be used to configure the SSH server or client. This map will never be changed by either the server or client and is not supposed to be changed at runtime (changes are not bound to have any effect on a running client or server), though it may affect the creation of sessions later as these values are usually not cached.
Note: the type of the mapped property should match the expected configuration value type -
Long, Integer, Boolean, String, etc.... If it doesn't, thetoString()result of the mapped value is used to convert it to the required type. E.g., if the mapped value is the string "1234" and the expected value is alongthen it will be parsed into one. Also, if the mapped value is anIntegerbut alongis expected, then it will be converted into one.- Specified by:
getPropertiesin interfacePropertyResolver- Returns:
- a valid
Mapcontaining configuration values, nevernull. Note: may be immutable.
-
getAttributesCount
public int getAttributesCount()- Specified by:
getAttributesCountin interfaceAttributeRepository- Returns:
- Current number of user-defined attributes stored in the repository
-
getAttribute
Description copied from interface:AttributeRepositoryReturns the value of the user-defined attribute.- Specified by:
getAttributein interfaceAttributeRepository- Type Parameters:
T- The generic attribute type- Parameters:
key- The key of the attribute; must not benull.- Returns:
nullif there is no value associated with the specified key
-
attributeKeys
- Specified by:
attributeKeysin interfaceAttributeRepository- Returns:
- A
Collectionsnapshot of all the currently registered attributes in the repository
-
computeAttributeIfAbsent
public <T> T computeAttributeIfAbsent(AttributeRepository.AttributeKey<T> key, Function<? super AttributeRepository.AttributeKey<T>, ? extends T> resolver) Description copied from interface:AttributeStoreIf the specified key is not already associated with a value (or is mapped tonull), attempts to compute its value using the given mapping function and enters it into this map unlessnull.- Specified by:
computeAttributeIfAbsentin interfaceAttributeStore- Type Parameters:
T- The generic attribute type- Parameters:
key- The key of the attribute; must not benull.resolver- The (nevernull) mapping function to use if value not already mapped. If returnsnullthen value is not mapped to the provided key.- Returns:
- The resolved value -
nullif value not mapped and resolver did not return a non-nullvalue for it
-
setAttribute
Description copied from interface:AttributeStoreSets a user-defined attribute.- Specified by:
setAttributein interfaceAttributeStore- Type Parameters:
T- The generic attribute type- Parameters:
key- The key of the attribute; must not benull.value- The value of the attribute; must not benull.- Returns:
- The old value of the attribute;
nullif it is new.
-
removeAttribute
Description copied from interface:AttributeStoreRemoves the user-defined attribute- Specified by:
removeAttributein interfaceAttributeStore- Type Parameters:
T- The generic attribute type- Parameters:
key- The key of the attribute; must not benull.- Returns:
- The removed value;
nullif no previous value
-
clearAttributes
public void clearAttributes()Description copied from interface:AttributeStoreRemoves all currently stored user-defined attributes- Specified by:
clearAttributesin interfaceAttributeStore
-
getParentPropertyResolver
- Specified by:
getParentPropertyResolverin interfacePropertyResolver- Returns:
- The parent resolver that can be used to query for missing properties -
nullif no parent
-
setParentPropertyResolver
-
getVersion
Description copied from interface:FactoryManagerAn upper case string identifying the version of the software used on client or server side. This version includes the name and version of the software and usually looks like this:SSHD-CORE-1.0- Specified by:
getVersionin interfaceFactoryManager- Returns:
- the version of the software
-
getChannelFactories
Description copied from interface:FactoryManagerRetrieve the list of named factories forChannelobjects.- Specified by:
getChannelFactoriesin interfaceFactoryManager- Returns:
- A list of
ChannelFactory-ies, nevernull
-
setChannelFactories
-
getNioWorkers
public int getNioWorkers() -
setNioWorkers
public void setNioWorkers(int nioWorkers) -
getAgentFactory
Description copied from interface:FactoryManagerRetrieve the agent factory for creatingSshAgentobjects.- Specified by:
getAgentFactoryin interfaceFactoryManager- Returns:
- The
SshAgentFactory
-
setAgentFactory
-
getScheduledExecutorService
Description copied from interface:FactoryManagerRetrieve theScheduledExecutorServiceto be used.- Specified by:
getScheduledExecutorServicein interfaceFactoryManager- Returns:
- The
ScheduledExecutorService, nevernull
-
setScheduledExecutorService
-
setScheduledExecutorService
public void setScheduledExecutorService(ScheduledExecutorService executor, boolean shutdownExecutor) -
getForwarderFactory
Description copied from interface:FactoryManagerRetrieve the forwarder factory used to support forwarding.- Specified by:
getForwarderFactoryin interfaceFactoryManager- Returns:
- The
ForwarderFactory
-
setForwarderFactory
-
getForwardingFilter
Description copied from interface:FactoryManagerRetrieve theForwardingFilterto be used by the SSH server. If no filter has been configured (i.e. this method returnsnull), then all forwarding requests will be rejected.- Specified by:
getForwardingFilterin interfaceFactoryManager- Returns:
- The
ForwardingFilterornull
-
setForwardingFilter
-
getFileSystemFactory
Description copied from interface:FactoryManagerRetrieve theFileSystemFactoryto be used to traverse the file system.- Specified by:
getFileSystemFactoryin interfaceFactoryManager- Returns:
- a valid
FileSystemFactoryinstance ornullif file based interactions are not supported on this server
-
setFileSystemFactory
-
getServiceFactories
Description copied from interface:FactoryManagerRetrieve the list of SSHServicefactories.- Specified by:
getServiceFactoriesin interfaceFactoryManager- Returns:
- a list of named
Servicefactories, nevernull
-
setServiceFactories
-
getGlobalRequestHandlers
Description copied from interface:FactoryManagerRetrieve the list of global request handlers.- Specified by:
getGlobalRequestHandlersin interfaceFactoryManager- Returns:
- a list of named
GlobalRequestHandler
-
setGlobalRequestHandlers
-
getReservedSessionMessagesHandler
- Specified by:
getReservedSessionMessagesHandlerin interfaceReservedSessionMessagesManager- Returns:
- The currently registered
ReservedSessionMessagesHandler- may benull
-
setReservedSessionMessagesHandler
- Specified by:
setReservedSessionMessagesHandlerin interfaceReservedSessionMessagesManager- Parameters:
handler- TheReservedSessionMessagesHandlerto use - may benull
-
getSessionDisconnectHandler
- Specified by:
getSessionDisconnectHandlerin interfaceSessionDisconnectHandlerManager
-
setSessionDisconnectHandler
- Specified by:
setSessionDisconnectHandlerin interfaceSessionDisconnectHandlerManager
-
getChannelStreamWriterResolver
- Specified by:
getChannelStreamWriterResolverin interfaceChannelStreamWriterResolverManager
-
setChannelStreamWriterResolver
- Specified by:
setChannelStreamWriterResolverin interfaceChannelStreamWriterResolverManager
-
getUnknownChannelReferenceHandler
- Specified by:
getUnknownChannelReferenceHandlerin interfaceUnknownChannelReferenceHandlerManager- Returns:
- The
UnknownChannelReferenceHandlerManagerto use - ifnullthen any reference to unknown channel causes anSshChannelNotFoundException
-
setUnknownChannelReferenceHandler
public void setUnknownChannelReferenceHandler(UnknownChannelReferenceHandler unknownChannelReferenceHandler) - Specified by:
setUnknownChannelReferenceHandlerin interfaceUnknownChannelReferenceHandlerManager- Parameters:
unknownChannelReferenceHandler- TheUnknownChannelReferenceHandlerManagerto use - ifnullthen any reference to unknown channel causes anSshChannelNotFoundException
-
resolveUnknownChannelReferenceHandler
Description copied from interface:UnknownChannelReferenceHandlerManagerCheck if current manager has a specific handler set for it - if not, try and resolve one from the "parent" container (if any)- Specified by:
resolveUnknownChannelReferenceHandlerin interfaceUnknownChannelReferenceHandlerManager- Returns:
- The resolved handler instance
-
addSessionListener
Description copied from interface:SessionListenerManagerAdd a session listener.- Specified by:
addSessionListenerin interfaceSessionListenerManager- Parameters:
listener- TheSessionListenerto add - notnull
-
removeSessionListener
Description copied from interface:SessionListenerManagerRemove a session listener.- Specified by:
removeSessionListenerin interfaceSessionListenerManager- Parameters:
listener- TheSessionListenerto remove
-
getSessionListenerProxy
- Specified by:
getSessionListenerProxyin interfaceSessionListenerManager- Returns:
- A (never
nullproxySessionListenerthat represents all the currently registered listeners. Any method invocation on the proxy is replicated to the currently registered listeners
-
addChannelListener
Description copied from interface:ChannelListenerManagerAdd a channel listener- Specified by:
addChannelListenerin interfaceChannelListenerManager- Parameters:
listener- TheChannelListenerto add - notnull
-
removeChannelListener
Description copied from interface:ChannelListenerManagerRemove a channel listener- Specified by:
removeChannelListenerin interfaceChannelListenerManager- Parameters:
listener- TheChannelListenerto remove
-
getChannelListenerProxy
- Specified by:
getChannelListenerProxyin interfaceChannelListenerManager- Returns:
- A (never
nullproxyChannelListenerthat represents all the currently registered listeners. Any method invocation on the proxy is replicated to the currently registered listeners
-
getPortForwardingEventListenerProxy
- Specified by:
getPortForwardingEventListenerProxyin interfacePortForwardingEventListenerManager- Returns:
- A proxy listener representing all the currently registered listener through this manager
-
addPortForwardingEventListener
Description copied from interface:PortForwardingEventListenerManagerAdd a port forwarding listener- Specified by:
addPortForwardingEventListenerin interfacePortForwardingEventListenerManager- Parameters:
listener- ThePortForwardingEventListenerto add - nevernull
-
removePortForwardingEventListener
Description copied from interface:PortForwardingEventListenerManagerRemove a port forwarding listener- Specified by:
removePortForwardingEventListenerin interfacePortForwardingEventListenerManager- Parameters:
listener- ThePortForwardingEventListenerto remove - ignored ifnull
-
setupSessionTimeout
-
removeSessionTimeout
-
createSessionTimeoutListener
-
stopSessionTimeoutListener
-
checkConfig
protected void checkConfig()
-