/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#ifndef __com_sun_star_auth_XSSOManager_idl__
#define __com_sun_star_auth_XSSOManager_idl__

#ifndef __com_sun_star_uno_XInterface_idl__ 
#include <com/sun/star/uno/XInterface.idl>
#endif

#ifndef __com_sun_star_auth_InvalidArgumentException_idl__
#include <com/sun/star/auth/InvalidArgumentException.idl>
#endif

#ifndef __com_sun_star_auth_SSOExceptions_idl__
#include <com/sun/star/auth/SSOExceptions.idl>
#endif

#ifndef __com_sun_star_auth_XSSOAcceptorContext_idl__
#include <com/sun/star/auth/XSSOAcceptorContext.idl>
#endif

#ifndef __com_sun_star_auth_XSSOInitiatorContext_idl__
#include <com/sun/star/auth/XSSOInitiatorContext.idl>
#endif

module com { module sun { module star { module auth {

/** supports the creation of security contexts for both
	the initiator/source side and the acceptor/target side.

    @since OpenOffice 1.1.2
 */
published interface XSSOManager : ::com::sun::star::uno::XInterface
{
	/** retrieves the mechanism name of all security contexts created using
        this manager.

        @returns
        the mechanism name ( e.g. "KERBEROS" )
	 */
	string					getMechanism();


	/** creates an initiator side security context.

		@param SourcePrincipal
		the name of the initiator side principal for which the context
		will be created.

		@param TargetPrincipal
		the name of the target/acceptor side principal to which the source
		principal intends to authenticate.

		@paran TargetHost
		the host name associated with the target principal.

		@returns
		the newly created initiator context.
	 */
	XSSOInitiatorContext	createInitiatorContext(
								[in] string	SourcePrincipal,
								[in] string	TargetPrincipal,
								[in] string	TargetHost )
									raises( InvalidArgumentException,
											InvalidCredentialException,
											InvalidPrincipalException,
											UnsupportedException );


	/** creates an acceptor side security context.

		@param TargetPrincipal
		the name of the acceptor side principal.

		@returns
		the newly created acceptor side context.
	 */
	XSSOAcceptorContext		createAcceptorContext(
								[in] string	TargetPrincipal )
									raises( InvalidArgumentException,
											InvalidCredentialException,
											InvalidPrincipalException,
											UnsupportedException );
};

}; }; }; };

#endif