org.openhealthtools.ihe.atna.nodeauth.context.NodeAuthModuleContext Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.openhealthtools.ihe.atna.nodeauth.context;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.openhealthtools.ihe.atna.context.AbstractModuleContext;
import org.openhealthtools.ihe.atna.context.SecurityContext;
import org.openhealthtools.ihe.atna.context.SecurityContextFactory;
import org.openhealthtools.ihe.atna.nodeauth.SecurityDomainManager;
import org.openhealthtools.ihe.atna.nodeauth.SocketHandler;
import org.openhealthtools.ihe.atna.nodeauth.handlers.TLSEnabledSocketHandler;
/**
* Module context that manages fixed resources and configuration options
* for the IHE Node Authentication (NA of ATNA) module. The primary
* purpose of this module is to enable the creation of sockets secured
* using Transport Layer Security (TLS) version 1, also known as
* the IHE ITI-19 Node Authentication transaction.
*
* These secured sockets may be non-encrypted (for trusted networks) or
* encrypted (for non-trusted networks) using a given set of ciphers.
* The most important part is the mutual authentication during socket
* negotiations, which ensure that a client and its peer are aware
* and trust each other using a private key and a set trusted certificates.
*
* The Node Authentication Context manages the following resources in a
* global scope:
*
* - The Socket Handler (default is a TLS-enabled Socket Handler)
* - The Security Domain manager and a mapping of URIs to security domain
* (default is to use Java System Property-assigned stores for all URIs)
*
*
* Additionally, the context manages the following configuration settings,
* also in a global scope:
*
* - Whether TLS security is enabled
* - Whether non-TLS connections are allowed
* - The number of times to retry a socket connection
* - The wait time between socket retries
* - The socket timeout wait time
*
*
* @author