1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.services.security;
18
19 import java.util.Iterator;
20 import java.security.Principal;
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 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 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 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 getUsers(String 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 principal)
122 throws JetspeedSecurityException;
123
124 }