001 package org.apache.turbine.test; 002 003 004 /* 005 * Licensed to the Apache Software Foundation (ASF) under one 006 * or more contributor license agreements. See the NOTICE file 007 * distributed with this work for additional information 008 * regarding copyright ownership. The ASF licenses this file 009 * to you under the Apache License, Version 2.0 (the 010 * "License"); you may not use this file except in compliance 011 * with the License. You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, 016 * software distributed under the License is distributed on an 017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 018 * KIND, either express or implied. See the License for the 019 * specific language governing permissions and limitations 020 * under the License. 021 */ 022 023 024 import java.util.HashMap; 025 import java.util.List; 026 027 import org.apache.turbine.om.security.Group; 028 import org.apache.turbine.om.security.Permission; 029 import org.apache.turbine.om.security.Role; 030 import org.apache.turbine.om.security.User; 031 import org.apache.turbine.services.security.BaseSecurityService; 032 import org.apache.turbine.util.security.AccessControlList; 033 import org.apache.turbine.util.security.DataBackendException; 034 import org.apache.turbine.util.security.EntityExistsException; 035 import org.apache.turbine.util.security.GroupSet; 036 import org.apache.turbine.util.security.PermissionSet; 037 import org.apache.turbine.util.security.RoleSet; 038 import org.apache.turbine.util.security.UnknownEntityException; 039 040 /** 041 * An Mock implementation of SecurityService. Basically replacing existing 042 * database methods as needed for a test case. 043 * 044 * @author <a href="mailto:epugh@opensourceconnections.com">Eric Pugh</a> 045 * @version $Id: MockSecurityService.java 615328 2008-01-25 20:25:05Z tv $ 046 */ 047 public class MockSecurityService extends BaseSecurityService 048 { 049 050 /** 051 * The key within services's properties for user implementation 052 * classname (user.class) - Leandro 053 */ 054 public static final String USER_PEER_CLASS_KEY = "userPeer.class"; 055 056 /** 057 * The default implementation of User interface 058 * (org.apache.turbine.om.security.DBUser) 059 */ 060 public static final String USER_PEER_CLASS_DEFAULT = 061 "org.apache.turbine.om.security.peer.TurbineUserPeer"; 062 063 /*----------------------------------------------------------------------- 064 Creation of AccessControlLists 065 -----------------------------------------------------------------------*/ 066 067 /** 068 * Constructs an AccessControlList for a specific user. 069 * 070 * This method creates a snapshot of the state of security information 071 * concerning this user, at the moment of invocation and stores it 072 * into an AccessControlList object. 073 * 074 * @param user the user for whom the AccessControlList are to be retrieved 075 * @return A new AccessControlList object. 076 * @throws DataBackendException if there was an error accessing the data 077 * backend. 078 * @throws UnknownEntityException if user account is not present. 079 */ 080 public AccessControlList getACL(User user) 081 throws DataBackendException, UnknownEntityException 082 { 083 return getAclInstance(new HashMap(), new HashMap()); 084 } 085 086 /*----------------------------------------------------------------------- 087 Security management 088 -----------------------------------------------------------------------*/ 089 090 /** 091 * Grant an User a Role in a Group. 092 * 093 * @param user the user. 094 * @param group the group. 095 * @param role the role. 096 * @throws DataBackendException if there was an error accessing the data 097 * backend. 098 * @throws UnknownEntityException if user account, group or role is not 099 * 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 }