KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jetspeed > services > security > UserManagement


1 /*
2  * Copyright 2000-2001,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.jetspeed.services.security;
18
19 import java.util.Iterator JavaDoc;
20 import java.security.Principal JavaDoc;
21
22 import org.apache.turbine.services.Service;
23 import org.apache.jetspeed.om.security.JetspeedUser;
24
25 /**
26  * <p> The <code>UserManagement</code> interface describes contract between
27  * the portal and security provider required for Jetspeed User Management.
28  * This interface enables an application to be independent of the underlying
29  * user management technology.
30  *
31  * @author <a HREF="mailto:david@bluesunrise.com">David Sean Taylor</a>
32  * @version $Id: UserManagement.java,v 1.3 2004/02/23 03:58:11 jford Exp $
33  */

34
35 public interface UserManagement extends Service, CredentialsManagement
36 {
37     public String JavaDoc SERVICE_NAME = "UserManagement";
38
39     /**
40      * Retrieves a <code>JetspeedUser</code> given the primary principle.
41      * The principal can be any valid Jetspeed Security Principal:
42      * <code>org.apache.jetspeed.om.security.UserNamePrincipal</code>
43      * <code>org.apache.jetspeed.om.security.UserIdPrincipal</code>
44      *
45      * The security service may optionally check the current user context
46      * to determine if the requestor has permission to perform this action.
47      *
48      * @param principal a principal identity to be retrieved.
49      * @return a <code>JetspeedUser</code> associated to the principal identity.
50      * @exception UserException when the security provider has a general failure retrieving a user.
51      * @exception UnknownUserException when the security provider cannot match
52      * the principal identity to a user.
53      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
54      */

55     JetspeedUser getUser(Principal JavaDoc principal)
56         throws JetspeedSecurityException;
57
58     /**
59      * Retrieves a collection of all <code>JetspeedUser</code>s.
60      * The security service may optionally check the current user context
61      * to determine if the requestor has permission to perform this action.
62      *
63      * @return a collection of <code>JetspeedUser</code> entities.
64      * @exception UserException when the security provider has a general failure retrieving users.
65      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
66      */

67     Iterator JavaDoc getUsers()
68         throws JetspeedSecurityException;
69
70     /**
71      * Retrieves a collection of <code>JetspeedUser</code>s filtered by a security
72      * provider-specific query string. For example SQL, OQL, JDOQL.
73      * The security service may optionally check the current user context
74      * to determine if the requestor has permission to perform this action.
75      *
76      * @return a collection of <code>JetspeedUser</code> entities.
77      * @exception UserException when the security provider has a general failure retrieving users.
78      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
79      */

80     Iterator JavaDoc getUsers(String JavaDoc filter)
81         throws JetspeedSecurityException;
82
83     /**
84      * Saves a <code>JetspeedUser</code>'s attributes into permanent storage.
85      * The user's account is required to exist in the storage.
86      * The security service may optionally check the current user context
87      * to determine if the requestor has permission to perform this action.
88      *
89      * @exception UserException when the security provider has a general failure retrieving users.
90      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
91      */

92     void saveUser(JetspeedUser user)
93         throws JetspeedSecurityException;
94
95     /**
96      * Adds a <code>JetspeedUser</code> into permanent storage.
97      * The security service can throw a <code>NotUniqueUserException</code> when the public
98      * credentials fail to meet the security provider-specific unique constraints.
99      * The security service may optionally check the current user context
100      * to determine if the requestor has permission to perform this action.
101      *
102      * @exception UserException when the security provider has a general failure retrieving users.
103      * @exception NotUniqueUserException when the public credentials fail to meet
104      * the security provider-specific unique constraints.
105      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
106      */

107     void addUser(JetspeedUser user)
108         throws JetspeedSecurityException;
109
110     /**
111      * Removes a <code>JetspeedUser</code> from the permanent store.
112      * The security service may optionally check the current user context
113      * to determine if the requestor has permission to perform this action.
114      *
115      * @param principal the principal identity to be retrieved.
116      * @exception UserException when the security provider has a general failure retrieving a user.
117      * @exception UnknownUserException when the security provider cannot match
118      * the principal identity to a user.
119      * @exception InsufficientPrivilegeException when the requestor is denied due to insufficient privilege
120      */

121     void removeUser(Principal JavaDoc principal)
122         throws JetspeedSecurityException;
123
124 }
125
Popular Tags