01: /*
02: jGuard is a security framework based on top of jaas (java authentication and authorization security).
03: it is written for web applications, to resolve simply, access control problems.
04: version $Name: $
05: http://sourceforge.net/projects/jguard/
06:
07: Copyright (C) 2004 Charles GAY
08:
09: This library is free software; you can redistribute it and/or
10: modify it under the terms of the GNU Lesser General Public
11: License as published by the Free Software Foundation; either
12: version 2.1 of the License, or (at your option) any later version.
13:
14: This library is distributed in the hope that it will be useful,
15: but WITHOUT ANY WARRANTY; without even the implied warranty of
16: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: Lesser General Public License for more details.
18:
19: You should have received a copy of the GNU Lesser General Public
20: License along with this library; if not, write to the Free Software
21: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22:
23:
24: jGuard project home page:
25: http://sourceforge.net/projects/jguard/
26:
27: */
28: package net.sf.jguard.core.authorization.permissions;
29:
30: import java.security.Permission;
31: import java.util.Iterator;
32: import java.util.Set;
33:
34: /**
35: * JGPermissionCollection with an <strong>additive</strong> mechanism.
36: * @author <a href="mailto:vberetti@users.sourceforge.net">Vincent Beretti</a>
37: * @author <a href="mailto:diabolo512@users.sourceforge.net ">Charles Gay</a>
38: * @see net.sf.jguard.core.authorization.permissions.JGPermissionCollection
39: */
40: public final class JGPositivePermissionCollection extends
41: JGPermissionCollection {
42:
43: private static final long serialVersionUID = -8614536023543936476L;
44:
45: public JGPositivePermissionCollection() {
46: super ();
47: }
48:
49: public JGPositivePermissionCollection(Set permissionsSet) {
50: super (permissionsSet);
51: }
52:
53: /** verify if this permission implies the other permission.
54: * @see java.security.PermissionCollection#implies(java.security.Permission)
55: */
56: public boolean implies(Permission permission) {
57: Iterator it = permissions.iterator();
58: Permission p;
59:
60: while (it.hasNext()) {
61: p = (Permission) it.next();
62: if (p.implies(permission)) {
63: return true;
64: }
65: }
66: return false;
67: }
68:
69: }
|