package at.gv.egovernment.moa.id.proxy; import java.util.Map; import at.gv.egovernment.moa.id.config.proxy.OAConfiguration; import at.gv.egovernment.moa.id.data.AuthenticationData; /** * Determines authentication parameters and headers to be added to a {@link java.net.URLConnection} * to the remote online application. * Utilizes {@link OAConfiguration} and {@link AuthenticationData}. * * @author Paul Ivancsics * @version $Id$ */ public interface LoginParameterResolver { /** Constants used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType, * naming predicates used by the LoginParameterResolver. */ public static final String MOAGivenName = "MOAGivenName"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAFamilyName = "MOAFamilyName"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOADateOfBirth = "MOADateOfBirth"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAVPK = "MOAVPK"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAPublicAuthority = "MOAPublicAuthority"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOABKZ = "MOABKZ"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAQualifiedCertificate = "MOAQualifiedCertificate"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAZMRZahl = "MOAZMRZahl"; /** Constant used in MOAIDConfiguration-1.1.xsd, type MOAAuthDataType */ public static final String MOAIPAddress = "MOAIPAddress"; /** * Returns authentication headers to be added to a URLConnection. * * @param oaConf configuration data * @param authData authentication data * @param clientIPAddress client IP address * @return A map, the keys being header names and values being corresponding header values. *
In case of authentication type "basic-auth", header fields * username and password. *
In case of authentication type "header-auth", header fields * derived from parameter mapping and authentication data provided. *
Otherwise, an empty map. */ public Map getAuthenticationHeaders( OAConfiguration oaConf, AuthenticationData authData, String clientIPAddress) throws LoginParameterResolverException; /** * Returns request parameters to be added to a URLConnection. * * @param oaConf configuration data * @param authData authentication data * @param clientIPAddress client IP address * @return A map, the keys being parameter names and values being corresponding parameter values. *
In case of authentication type "param-auth", parameters * derived from parameter mapping and authentication data provided. *
Otherwise, an empty map. */ public Map getAuthenticationParameters( OAConfiguration oaConf, AuthenticationData authData, String clientIPAddress) throws LoginParameterResolverException; public void configure(String configuration) throws LoginParameterResolverException; }