1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_auth_XSSOPasswordCache_idl__
29#define __com_sun_star_auth_XSSOPasswordCache_idl__
30
31#ifndef __com_sun_star_uno_XInterface_idl__
32#include <com/sun/star/uno/XInterface.idl>
33#endif
34
35#ifndef __com_sun_star_auth_SSOExceptions_idl__
36#include <com/sun/star/auth/SSOExceptions.idl>
37#endif
38
39module com { module sun { module star { module auth {
40
41/** supports password caching for security mechanisms which use passwords as
42    credentials or as an input to credential creation but don't have
43    an external method to cache these passwords.
44
45    @since OOo 1.1.2
46 */
47
48published interface XSSOPasswordCache : ::com::sun::star::uno::XInterface
49{
50	/** adds a username/password combination to the cache.
51		<P>
52		If an entry for the specified username already exists in the cache, it
53		will be overwritten.
54
55	    @param UserName
56	    the user name to add
57
58		@param Password
59		the associated password
60
61		@param Persist
62		indicates whether or not the username/password combination should be
63        persisted
64	 */
65	void	addPassword( [in] string UserName,
66						 [in] string Password,
67						 [in] boolean Persist )
68				raises( InvalidArgumentException,
69						PersistenceFailureException );
70
71	/** retrieves a password for a given user from the cache.
72		<P>
73		Non persistent cache is searched first, followed by the
74		persistent cache ( if it exists ).
75
76		@param UserName
77		the name of the user whose password should be retrieved
78
79		@param Persist
80		indicates whether or not the password is persistent
81
82		@returns
83		the required password
84	 */
85	string	getPassword( [in] string UserName, [out] boolean Persist )
86				raises( InvalidArgumentException,
87						PersistenceFailureException );
88
89	/** removes a password from the cache
90
91		@param UserName
92		the name of the user whose password should be removed.
93
94		@param RemovePersist
95		indicates whether or not the password should also be removed, if
96        present, from persistent cache.
97	 */
98	void	removePassword( [in] string UserName, [in] boolean RemovePersist )
99				raises( InvalidArgumentException,
100						PersistenceFailureException );
101};
102
103}; }; }; };
104
105#endif
106