1   package org.apache.turbine.test;
2   
3   
4   /*
5    * Licensed to the Apache Software Foundation (ASF) under one
6    * or more contributor license agreements.  See the NOTICE file
7    * distributed with this work for additional information
8    * regarding copyright ownership.  The ASF licenses this file
9    * to you under the Apache License, Version 2.0 (the
10   * "License"); you may not use this file except in compliance
11   * with the License.  You may obtain a copy of the License at
12   *
13   *   http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing,
16   * software distributed under the License is distributed on an
17   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18   * KIND, either express or implied.  See the License for the
19   * specific language governing permissions and limitations
20   * under the License.
21   */
22  
23  
24  import java.util.HashMap;
25  import java.util.List;
26  
27  import org.apache.turbine.om.security.Group;
28  import org.apache.turbine.om.security.Permission;
29  import org.apache.turbine.om.security.Role;
30  import org.apache.turbine.om.security.User;
31  import org.apache.turbine.services.security.BaseSecurityService;
32  import org.apache.turbine.util.security.AccessControlList;
33  import org.apache.turbine.util.security.DataBackendException;
34  import org.apache.turbine.util.security.EntityExistsException;
35  import org.apache.turbine.util.security.GroupSet;
36  import org.apache.turbine.util.security.PermissionSet;
37  import org.apache.turbine.util.security.RoleSet;
38  import org.apache.turbine.util.security.UnknownEntityException;
39  
40  /**
41   * An Mock implementation of SecurityService.  Basically replacing existing
42   * database methods as needed for a test case.
43   *
44   * @author <a href="mailto:epugh@opensourceconnections.com">Eric Pugh</a>
45   * @version $Id: MockSecurityService.java 615328 2008-01-25 20:25:05Z tv $
46   */
47  public class MockSecurityService extends BaseSecurityService
48  {
49  
50      /**
51       * The key within services's properties for user implementation
52       * classname (user.class)  - Leandro
53       */
54      public static final String USER_PEER_CLASS_KEY = "userPeer.class";
55  
56      /**
57       * The default implementation of User interface
58       * (org.apache.turbine.om.security.DBUser)
59       */
60      public static final String USER_PEER_CLASS_DEFAULT =
61          "org.apache.turbine.om.security.peer.TurbineUserPeer";
62  
63      /*-----------------------------------------------------------------------
64        Creation of AccessControlLists
65        -----------------------------------------------------------------------*/
66  
67      /**
68       * Constructs an AccessControlList for a specific user.
69       *
70       * This method creates a snapshot of the state of security information
71       * concerning this user, at the moment of invocation and stores it
72       * into an AccessControlList object.
73       *
74       * @param user the user for whom the AccessControlList are to be retrieved
75       * @return A new AccessControlList object.
76       * @throws DataBackendException if there was an error accessing the data
77       *         backend.
78       * @throws UnknownEntityException if user account is not present.
79       */
80      public AccessControlList getACL(User user)
81          throws DataBackendException, UnknownEntityException
82      {
83          return getAclInstance(new HashMap(), new HashMap());
84      }
85  
86      /*-----------------------------------------------------------------------
87        Security management
88        -----------------------------------------------------------------------*/
89  
90      /**
91       * Grant an User a Role in a Group.
92       *
93       * @param user the user.
94       * @param group the group.
95       * @param role the role.
96       * @throws DataBackendException if there was an error accessing the data
97       *         backend.
98       * @throws UnknownEntityException if user account, group or role is not
99       *         present.
100      */
101     public synchronized void grant(User user, Group group, Role role)
102         throws DataBackendException, UnknownEntityException
103     {
104 
105     }
106 
107     /**
108      * Revoke a Role in a Group from an User.
109      *
110      * @param user the user.
111      * @param group the group.
112      * @param role the role.
113      * @throws DataBackendException if there was an error accessing the data
114      *         backend.
115      * @throws UnknownEntityException if user account, group or role is not
116      *         present.
117      */
118     public synchronized void revoke(User user, Group group, Role role)
119         throws DataBackendException, UnknownEntityException
120     {
121 
122     }
123 
124     /**
125      * Revokes all roles from an User.
126      *
127      * This method is used when deleting an account.
128      *
129      * @param user the User.
130      * @throws DataBackendException if there was an error accessing the data
131      *         backend.
132      * @throws UnknownEntityException if the account is not present.
133      */
134     public synchronized void revokeAll(User user)
135         throws DataBackendException, UnknownEntityException
136     {
137 
138     }
139 
140     /**
141      * Grants a Role a Permission
142      *
143      * @param role the Role.
144      * @param permission the Permission.
145      * @throws DataBackendException if there was an error accessing the data
146      *         backend.
147      * @throws UnknownEntityException if role or permission is not present.
148      */
149     public synchronized void grant(Role role, Permission permission)
150         throws DataBackendException, UnknownEntityException
151     {
152 
153     }
154 
155     /**
156      * Revokes a Permission from a Role.
157      *
158      * @param role the Role.
159      * @param permission the Permission.
160      * @throws DataBackendException if there was an error accessing the data
161      *         backend.
162      * @throws UnknownEntityException if role or permission is not present.
163      */
164     public synchronized void revoke(Role role, Permission permission)
165         throws DataBackendException, UnknownEntityException
166     {
167 
168     }
169 
170     /**
171      * Revokes all permissions from a Role.
172      *
173      * This method is user when deleting a Role.
174      *
175      * @param role the Role
176      * @throws DataBackendException if there was an error accessing the data
177      *         backend.
178      * @throws UnknownEntityException if the Role is not present.
179      */
180     public synchronized void revokeAll(Role role)
181         throws DataBackendException, UnknownEntityException
182     {
183 
184     }
185 
186     /*-----------------------------------------------------------------------
187       Group/Role/Permission management
188       -----------------------------------------------------------------------*/
189 
190     /**
191      * Retrieve a set of Groups that meet the specified Criteria.
192      *
193      * @param criteria A Criteria of Group selection.
194      * @return a set of Groups that meet the specified Criteria.
195      * @throws DataBackendException if there was an error accessing the data
196      *         backend.
197      */
198     public GroupSet getGroups(Object criteria) throws DataBackendException
199     {
200 
201         return new GroupSet();
202     }
203 
204     /**
205      * Retrieve a set of Roles that meet the specified Criteria.
206      *
207      * @param criteria A Criteria of Roles selection.
208      * @return a set of Roles that meet the specified Criteria.
209      * @throws DataBackendException if there was an error accessing the data
210      *         backend.
211      */
212     public RoleSet getRoles(Object criteria) throws DataBackendException
213     {
214 
215         return new RoleSet();
216     }
217 
218     /**
219      * Retrieve a set of Permissions that meet the specified Criteria.
220      *
221      * @param criteria A Criteria of Permissions selection.
222      * @return a set of Permissions that meet the specified Criteria.
223      * @throws DataBackendException if there was an error accessing the data
224      *         backend.
225      */
226     public PermissionSet getPermissions(Object criteria)
227         throws DataBackendException
228     {
229 
230         return new PermissionSet();
231     }
232 
233     /**
234      * Retrieves all permissions associated with a role.
235      *
236      * @param role the role name, for which the permissions are to be retrieved.
237      * @return A Permission set for the Role.
238      * @throws DataBackendException if there was an error accessing the data
239      *         backend.
240      * @throws UnknownEntityException if the role is not present.
241      */
242     public PermissionSet getPermissions(Role role)
243         throws DataBackendException, UnknownEntityException
244     {
245        return null;
246     }
247 
248     /**
249      * Stores Group's attributes. The Groups is required to exist in the system.
250      *
251      * @param group The Group to be stored.
252      * @throws DataBackendException if there was an error accessing the data
253      *         backend.
254      * @throws UnknownEntityException if the group does not exist.
255      */
256     public void saveGroup(Group group)
257         throws DataBackendException, UnknownEntityException
258     {
259 
260     }
261 
262     /**
263      * Stores Role's attributes. The Roles is required to exist in the system.
264      *
265      * @param role The Role to be stored.
266      * @throws DataBackendException if there was an error accessing the data
267      *         backend.
268      * @throws UnknownEntityException if the role does not exist.
269      */
270     public void saveRole(Role role)
271         throws DataBackendException, UnknownEntityException
272     {
273 
274     }
275 
276     /**
277      * Stores Permission's attributes. The Permissions is required to exist in
278      * the system.
279      *
280      * @param permission The Permission to be stored.
281      * @throws DataBackendException if there was an error accessing the data
282      *         backend.
283      * @throws UnknownEntityException if the permission does not exist.
284      */
285     public void savePermission(Permission permission)
286         throws DataBackendException, UnknownEntityException
287     {
288 
289     }
290 
291     /**
292      * Creates a new group with specified attributes.
293      *
294      * @param group the object describing the group to be created.
295      * @return a new Group object that has id set up properly.
296      * @throws DataBackendException if there was an error accessing the data
297      *         backend.
298      * @throws EntityExistsException if the group already exists.
299      */
300     public synchronized Group addGroup(Group group)
301         throws DataBackendException, EntityExistsException
302     {
303         return null;
304     }
305 
306     /**
307      * Creates a new role with specified attributes.
308      *
309      * @param role the object describing the role to be created.
310      * @return a new Role object that has id set up properly.
311      * @throws DataBackendException if there was an error accessing the data
312      *         backend.
313      * @throws EntityExistsException if the role already exists.
314      */
315     public synchronized Role addRole(Role role)
316         throws DataBackendException, EntityExistsException
317     {
318         return null;
319     }
320 
321     /**
322      * Creates a new permission with specified attributes.
323      *
324      * @param permission the object describing the permission to be created.
325      * @return a new Permission object that has id set up properly.
326      * @throws DataBackendException if there was an error accessing the data
327      *         backend.
328      * @throws EntityExistsException if the permission already exists.
329      */
330     public synchronized Permission addPermission(Permission permission)
331         throws DataBackendException, EntityExistsException
332     {
333         return null;
334     }
335 
336     /**
337      * Removes a Group from the system.
338      *
339      * @param group The object describing the group to be removed.
340      * @throws DataBackendException if there was an error accessing the data
341      *         backend.
342      * @throws UnknownEntityException if the group does not exist.
343      */
344     public synchronized void removeGroup(Group group)
345         throws DataBackendException, UnknownEntityException
346     {
347 
348     }
349 
350     /**
351      * Removes a Role from the system.
352      *
353      * @param role The object describing the role to be removed.
354      * @throws DataBackendException if there was an error accessing the data
355      *         backend.
356      * @throws UnknownEntityException if the role does not exist.
357      */
358     public synchronized void removeRole(Role role)
359         throws DataBackendException, UnknownEntityException
360     {
361 
362     }
363 
364     /**
365      * Removes a Permission from the system.
366      *
367      * @param permission The object describing the permission to be removed.
368      * @throws DataBackendException if there was an error accessing the data
369      *         backend.
370      * @throws UnknownEntityException if the permission does not exist.
371      */
372     public synchronized void removePermission(Permission permission)
373         throws DataBackendException, UnknownEntityException
374     {
375 
376     }
377 
378     /**
379      * Renames an existing Group.
380      *
381      * @param group The object describing the group to be renamed.
382      * @param name the new name for the group.
383      * @throws DataBackendException if there was an error accessing the data
384      *         backend.
385      * @throws UnknownEntityException if the group does not exist.
386      */
387     public synchronized void renameGroup(Group group, String name)
388         throws DataBackendException, UnknownEntityException
389     {
390 
391     }
392 
393     /**
394      * Renames an existing Role.
395      *
396      * @param role The object describing the role to be renamed.
397      * @param name the new name for the role.
398      * @throws DataBackendException if there was an error accessing the data
399      *         backend.
400      * @throws UnknownEntityException if the role does not exist.
401      */
402     public synchronized void renameRole(Role role, String name)
403         throws DataBackendException, UnknownEntityException
404     {
405 
406     }
407 
408     /**
409      * Renames an existing Permission.
410      *
411      * @param permission The object describing the permission to be renamed.
412      * @param name the new name for the permission.
413      * @throws DataBackendException if there was an error accessing the data
414      *         backend.
415      * @throws UnknownEntityException if the permission does not exist.
416      */
417     public synchronized void renamePermission(
418         Permission permission,
419         String name)
420         throws DataBackendException, UnknownEntityException
421     {
422     }
423 
424     public GroupSet getAllGroups() throws DataBackendException {
425         return null;
426     }
427     public PermissionSet getAllPermissions() throws DataBackendException {
428         return null;
429     }
430     public RoleSet getAllRoles() throws DataBackendException {
431         return null;
432     }
433     public List getUserList(Object criteria) throws DataBackendException {
434         return null;
435     }
436 }