graph LR
iRODSSession["iRODSSession"]
ConnectionPool["ConnectionPool"]
Connection["Connection"]
Auth["Auth"]
ClientServerNegotiation["ClientServerNegotiation"]
PasswordObfuscation["PasswordObfuscation"]
iRODSSession -- "relies on to manage" --> ConnectionPool
ConnectionPool -- "manages" --> Connection
ConnectionPool -- "provides instances to" --> iRODSSession
Connection -- "delegates authentication to" --> Auth
Connection -- "interacts with during connection setup" --> ClientServerNegotiation
Auth -- "utilizes for credential security" --> PasswordObfuscation
This subsystem is responsible for establishing and maintaining secure, persistent connections with the iRODS server, encompassing all aspects of user authentication and efficient session management.
The primary high-level interface for client applications. It orchestrates the overall session lifecycle, manages configuration, and handles account details. It serves as the main entry point for users to initiate and manage their interactions with the iRODS server.
Related Classes/Methods:
Manages a pool of Connection instances to optimize performance and resource utilization. It ensures efficient reuse of established connections, reducing overhead for repeated server interactions.
Related Classes/Methods:
Handles low-level network communication, including establishing TCP/IP connections, performing SSL/GSI handshakes, and managing raw data transfer with the iRODS server. It is responsible for the physical link to the server.
Related Classes/Methods:
Encapsulates various authentication mechanisms (Native, PAM, GSI). It manages the authentication handshake process and handles credential management, ensuring secure client identification to the iRODS server.
Related Classes/Methods:
Responsible for the initial negotiation of capabilities and authentication mechanisms between the client and the iRODS server. This ensures compatibility and proper setup for secure communication.
Related Classes/Methods:
Provides utilities for securing password data through encoding, decoding, scrambling, and unscrambling operations. It supports the Auth component in handling sensitive credentials.
Related Classes/Methods: