001: /*
002: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
004: *
005: * This program is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU General Public License version
007: * 2 only, as published by the Free Software Foundation.
008: *
009: * This program is distributed in the hope that it will be useful, but
010: * WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012: * General Public License version 2 for more details (a copy is
013: * included at /legal/license.txt).
014: *
015: * You should have received a copy of the GNU General Public License
016: * version 2 along with this work; if not, write to the Free Software
017: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
018: * 02110-1301 USA
019: *
020: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
021: * Clara, CA 95054 or visit www.sun.com if you need additional
022: * information or have any questions.
023: */
024:
025: package com.sun.j2me.security;
026:
027: /**
028: * A class help implement the AccessControlContext interface.
029: */
030: public abstract class AccessControlContextAdapter implements
031: AccessControlContext {
032:
033: /**
034: * Determines whether the access request indicated by the
035: * specified permission should be allowed or denied, based on
036: * the security policy currently in effect.
037: * This method quietly returns if the access request
038: * is permitted, or throws a suitable SecurityException otherwise.
039: * May block to ask the user a question.
040: * <p>
041: * If the permission check failed because an InterruptedException was
042: * thrown, this method will throw a InterruptedSecurityException.
043: *
044: * @param name name of the requested permission
045: *
046: * @exception SecurityException if the specified permission
047: * is not permitted, based on the current security policy
048: */
049: public void checkPermission(String name) throws SecurityException {
050:
051: checkPermission(name, null, null);
052: }
053:
054: /**
055: * Check for permission and throw an exception if not allowed.
056: * May block to ask the user a question.
057: * <p>
058: * If the permission check failed because an InterruptedException was
059: * thrown, this method will throw a InterruptedSecurityException.
060: *
061: * @param name name of the requested permission
062: *
063: * @param resource string to insert into the question, can be null if
064: * no %2 in the question
065: *
066: * @param name name of the requested permission
067: *
068: * @exception SecurityException if the specified permission
069: * is not permitted, based on the current security policy
070: */
071: public void checkPermission(String name, String resource)
072: throws SecurityException {
073:
074: checkPermission(name, resource, null);
075: }
076:
077: /**
078: * Checks for permission and throw an exception if not allowed.
079: * May block to ask the user a question.
080: * <p>
081: * If the permission check failed because an InterruptedException was
082: * thrown, this method will throw a InterruptedSecurityException.
083: *
084: * @param permission ID of the permission to check for,
085: * the ID must be from
086: * {@link com.sun.midp.security.Permissions}
087: * @param resource string to insert into the question, can be null if
088: * no %2 in the question
089: * @param extraValue string to insert into the question,
090: * can be null if no %3 in the question
091: *
092: * @param name name of the requested permission
093: *
094: * @exception SecurityException if the specified permission
095: * is not permitted, based on the current security policy
096: */
097: public void checkPermission(String name, String resource,
098: String extraValue) throws SecurityException {
099:
100: try {
101: checkPermissionImpl(name, resource, extraValue);
102: } catch (InterruptedException ie) {
103: throw new InterruptedSecurityException();
104: }
105: }
106:
107: /**
108: * Checks for permission and throw an exception if not allowed.
109: * May block to ask the user a question.
110: * <p>
111: * If the permission check failed because an InterruptedException was
112: * thrown, this method will throw a InterruptedSecurityException.
113: *
114: * @param permission ID of the permission to check for,
115: * the ID must be from
116: * {@link com.sun.midp.security.Permissions}
117: * @param resource string to insert into the question, can be null if
118: * no %2 in the question
119: * @param extraValue string to insert into the question,
120: * can be null if no %3 in the question
121: *
122: * @param name name of the requested permission
123: *
124: * @exception SecurityException if the specified permission
125: * is not permitted, based on the current security policy
126: * @exception InterruptedException if another thread interrupts the
127: * calling thread while this method is waiting to preempt the
128: * display.
129: */
130: public abstract void checkPermissionImpl(String name,
131: String resource, String extraValue)
132: throws SecurityException, InterruptedException;
133: }
|