History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/sun/security/util/SecurityConstants.java (1 of 18352 files). Show all

Unified · Split

java/pkg/sun/security/util/SecurityConstants.java+261−0
@@ -0,0 +1,261 @@
1+/*
2+ * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package sun.security.util;
27+
28+import java.net.SocketPermission;
29+import java.net.NetPermission;
30+import java.security.AccessController;
31+import java.security.PrivilegedAction;
32+import java.security.Permission;
33+import java.security.BasicPermission;
34+import java.security.SecurityPermission;
35+import java.security.AllPermission;
36+
37+/**
38+ * Permission constants and string constants used to create permissions
39+ * used throughout the JDK.
40+ */
41+public final class SecurityConstants {
42+ // Cannot create one of these
43+ private SecurityConstants () {
44+ }
45+
46+ // Commonly used string constants for permission actions used by
47+ // SecurityManager. Declare here for shortcut when checking permissions
48+ // in FilePermission, SocketPermission, and PropertyPermission.
49+
50+ public static final String FILE_DELETE_ACTION = "delete";
51+ public static final String FILE_EXECUTE_ACTION = "execute";
52+ public static final String FILE_READ_ACTION = "read";
53+ public static final String FILE_WRITE_ACTION = "write";
54+ public static final String FILE_READLINK_ACTION = "readlink";
55+
56+ public static final String SOCKET_RESOLVE_ACTION = "resolve";
57+ public static final String SOCKET_CONNECT_ACTION = "connect";
58+ public static final String SOCKET_LISTEN_ACTION = "listen";
59+ public static final String SOCKET_ACCEPT_ACTION = "accept";
60+ public static final String SOCKET_CONNECT_ACCEPT_ACTION = "connect,accept";
61+
62+ public static final String PROPERTY_RW_ACTION = "read,write";
63+ public static final String PROPERTY_READ_ACTION = "read";
64+ public static final String PROPERTY_WRITE_ACTION = "write";
65+
66+ // Permission constants used in the various checkPermission() calls in JDK.
67+
68+ // java.lang.Class, java.lang.SecurityManager, java.lang.System,
69+ // java.net.URLConnection, java.security.AllPermission, java.security.Policy,
70+ // sun.security.provider.PolicyFile
71+ public static final AllPermission ALL_PERMISSION = new AllPermission();
72+
73+ /**
74+ * Permission type used when AWT is not present.
75+ */
76+ private static class FakeAWTPermission extends BasicPermission {
77+ private static final long serialVersionUID = -1L;
78+ public FakeAWTPermission(String name) {
79+ super(name);
80+ }
81+ public String toString() {
82+ return "(\"java.awt.AWTPermission\" \"" + getName() + "\")";
83+ }
84+ }
85+
86+ /**
87+ * Permission factory used when AWT is not present.
88+ */
89+ private static class FakeAWTPermissionFactory
90+ implements PermissionFactory<FakeAWTPermission>
91+ {
92+ @Override
93+ public FakeAWTPermission newPermission(String name) {
94+ return new FakeAWTPermission(name);
95+ }
96+ }
97+
98+ /**
99+ * AWT Permissions used in the JDK.
100+ */
101+ public static class AWT {
102+ private AWT() { }
103+
104+ /**
105+ * The class name of the factory to create java.awt.AWTPermission objects.
106+ */
107+ private static final String AWTFactory = "sun.awt.AWTPermissionFactory";
108+
109+ /**
110+ * The PermissionFactory to create AWT permissions (or fake permissions
111+ * if AWT is not present).
112+ */
113+ private static final PermissionFactory<?> factory = permissionFactory();
114+
115+ private static PermissionFactory<?> permissionFactory() {
116+ Class<?> c = AccessController
117+ .doPrivileged(new PrivilegedAction<Class<?>>() {
118+ public Class<?> run() {
119+ try {
120+ return Class.forName(AWTFactory, true, null);
121+ } catch (ClassNotFoundException e) {
122+ // not available
123+ return null;
124+ }
125+ }});
126+ if (c != null) {
127+ // AWT present
128+ try {
129+ return (PermissionFactory<?>)c.newInstance();
130+ } catch (InstantiationException x) {
131+ throw new InternalError(x.getMessage());
132+ } catch (IllegalAccessException x) {
133+ throw new InternalError(x.getMessage());
134+ }
135+ } else {
136+ // AWT not present
137+ return new FakeAWTPermissionFactory();
138+ }
139+ }
140+
141+ private static Permission newAWTPermission(String name) {
142+ return factory.newPermission(name);
143+ }
144+
145+ // java.lang.SecurityManager
146+ public static final Permission TOPLEVEL_WINDOW_PERMISSION =
147+ newAWTPermission("showWindowWithoutWarningBanner");
148+
149+ // java.lang.SecurityManager
150+ public static final Permission ACCESS_CLIPBOARD_PERMISSION =
151+ newAWTPermission("accessClipboard");
152+
153+ // java.lang.SecurityManager
154+ public static final Permission CHECK_AWT_EVENTQUEUE_PERMISSION =
155+ newAWTPermission("accessEventQueue");
156+
157+ // java.awt.Dialog
158+ public static final Permission TOOLKIT_MODALITY_PERMISSION =
159+ newAWTPermission("toolkitModality");
160+
161+ // java.awt.Robot
162+ public static final Permission READ_DISPLAY_PIXELS_PERMISSION =
163+ newAWTPermission("readDisplayPixels");
164+
165+ // java.awt.Robot
166+ public static final Permission CREATE_ROBOT_PERMISSION =
167+ newAWTPermission("createRobot");
168+
169+ // java.awt.MouseInfo
170+ public static final Permission WATCH_MOUSE_PERMISSION =
171+ newAWTPermission("watchMousePointer");
172+
173+ // java.awt.Window
174+ public static final Permission SET_WINDOW_ALWAYS_ON_TOP_PERMISSION =
175+ newAWTPermission("setWindowAlwaysOnTop");
176+
177+ // java.awt.Toolkit
178+ public static final Permission ALL_AWT_EVENTS_PERMISSION =
179+ newAWTPermission("listenToAllAWTEvents");
180+
181+ // java.awt.SystemTray
182+ public static final Permission ACCESS_SYSTEM_TRAY_PERMISSION =
183+ newAWTPermission("accessSystemTray");
184+ }
185+
186+ // java.net.URL
187+ public static final NetPermission SPECIFY_HANDLER_PERMISSION =
188+ new NetPermission("specifyStreamHandler");
189+
190+ // java.net.ProxySelector
191+ public static final NetPermission SET_PROXYSELECTOR_PERMISSION =
192+ new NetPermission("setProxySelector");
193+
194+ // java.net.ProxySelector
195+ public static final NetPermission GET_PROXYSELECTOR_PERMISSION =
196+ new NetPermission("getProxySelector");
197+
198+ // java.net.CookieHandler
199+ public static final NetPermission SET_COOKIEHANDLER_PERMISSION =
200+ new NetPermission("setCookieHandler");
201+
202+ // java.net.CookieHandler
203+ public static final NetPermission GET_COOKIEHANDLER_PERMISSION =
204+ new NetPermission("getCookieHandler");
205+
206+ // java.net.ResponseCache
207+ public static final NetPermission SET_RESPONSECACHE_PERMISSION =
208+ new NetPermission("setResponseCache");
209+
210+ // java.net.ResponseCache
211+ public static final NetPermission GET_RESPONSECACHE_PERMISSION =
212+ new NetPermission("getResponseCache");
213+
214+ // java.lang.SecurityManager, sun.applet.AppletPanel, sun.misc.Launcher
215+ public static final RuntimePermission CREATE_CLASSLOADER_PERMISSION =
216+ new RuntimePermission("createClassLoader");
217+
218+ // java.lang.SecurityManager
219+ public static final RuntimePermission CHECK_MEMBER_ACCESS_PERMISSION =
220+ new RuntimePermission("accessDeclaredMembers");
221+
222+ // java.lang.SecurityManager, sun.applet.AppletSecurity
223+ public static final RuntimePermission MODIFY_THREAD_PERMISSION =
224+ new RuntimePermission("modifyThread");
225+
226+ // java.lang.SecurityManager, sun.applet.AppletSecurity
227+ public static final RuntimePermission MODIFY_THREADGROUP_PERMISSION =
228+ new RuntimePermission("modifyThreadGroup");
229+
230+ // java.lang.Class
231+ public static final RuntimePermission GET_PD_PERMISSION =
232+ new RuntimePermission("getProtectionDomain");
233+
234+ // java.lang.Class, java.lang.ClassLoader, java.lang.Thread
235+ public static final RuntimePermission GET_CLASSLOADER_PERMISSION =
236+ new RuntimePermission("getClassLoader");
237+
238+ // java.lang.Thread
239+ public static final RuntimePermission STOP_THREAD_PERMISSION =
240+ new RuntimePermission("stopThread");
241+
242+ // java.lang.Thread
243+ public static final RuntimePermission GET_STACK_TRACE_PERMISSION =
244+ new RuntimePermission("getStackTrace");
245+
246+ // java.security.AccessControlContext
247+ public static final SecurityPermission CREATE_ACC_PERMISSION =
248+ new SecurityPermission("createAccessControlContext");
249+
250+ // java.security.AccessControlContext
251+ public static final SecurityPermission GET_COMBINER_PERMISSION =
252+ new SecurityPermission("getDomainCombiner");
253+
254+ // java.security.Policy, java.security.ProtectionDomain
255+ public static final SecurityPermission GET_POLICY_PERMISSION =
256+ new SecurityPermission ("getPolicy");
257+
258+ // java.lang.SecurityManager
259+ public static final SocketPermission LOCAL_LISTEN_PERMISSION =
260+ new SocketPermission("localhost:1024-", SOCKET_LISTEN_ACTION);
261+}