Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/sun/security/provider/PolicyFile/Modules.java
41153 views
1
/*
2
* Copyright (c) 2015, 2020, 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.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @bug 8047771
27
* @summary check permissions and principals from various modules
28
* @modules java.desktop
29
* java.logging
30
* java.management
31
* java.security.jgss
32
* java.smartcardio
33
* java.sql
34
* java.xml
35
* jdk.attach
36
* jdk.jdi
37
* jdk.net
38
* jdk.security.auth
39
* jdk.security.jgss
40
* @run main/othervm/java.security.policy==modules.policy Modules
41
*/
42
43
import java.security.AccessController;
44
import java.security.Permission;
45
import java.security.Principal;
46
import java.security.PrivilegedAction;
47
import java.util.Arrays;
48
import java.util.Collections;
49
import java.util.HashSet;
50
import java.util.Set;
51
import javax.security.auth.Subject;
52
53
public class Modules {
54
55
private final static Permission[] perms = new Permission[] {
56
// java.base module
57
new java.io.SerializablePermission("enableSubstitution"),
58
new java.lang.reflect.ReflectPermission("suppressAccessChecks"),
59
new java.nio.file.LinkPermission("hard"),
60
new javax.net.ssl.SSLPermission("getSSLSessionContext"),
61
new javax.security.auth.AuthPermission("doAsPrivileged"),
62
new javax.security.auth.PrivateCredentialPermission("* * \"*\"",
63
"read"),
64
// java.desktop module
65
new java.awt.AWTPermission("createRobot"),
66
new javax.sound.sampled.AudioPermission("play"),
67
// java.logging module
68
new java.util.logging.LoggingPermission("control", ""),
69
// java.management module
70
new java.lang.management.ManagementPermission("control"),
71
new javax.management.MBeanPermission("*", "getAttribute"),
72
new javax.management.MBeanServerPermission("createMBeanServer"),
73
new javax.management.MBeanTrustPermission("register"),
74
new javax.management.remote.SubjectDelegationPermission("*"),
75
// java.security.jgss module
76
new javax.security.auth.kerberos.DelegationPermission("\"*\" \"*\""),
77
new javax.security.auth.kerberos.ServicePermission("*", "accept"),
78
// java.sql module
79
new java.sql.SQLPermission("setLog"),
80
// java.smartcardio module
81
new javax.smartcardio.CardPermission("*", "*"),
82
// jdk.attach module (@jdk.Exported Permissions)
83
new com.sun.tools.attach.AttachPermission("attachVirtualMachine"),
84
// jdk.jdi module (@jdk.Exported Permissions)
85
new com.sun.jdi.JDIPermission("virtualMachineManager"),
86
// jdk.security.jgss module (@jdk.Exported Permissions)
87
new com.sun.security.jgss.InquireSecContextPermission("*"),
88
};
89
90
private final static Principal[] princs = new Principal[] {
91
// java.base module
92
new javax.security.auth.x500.X500Principal("CN=Duke"),
93
// java.management module
94
new javax.management.remote.JMXPrincipal("Duke"),
95
// java.security.jgss module
96
new javax.security.auth.kerberos.KerberosPrincipal("[email protected]"),
97
new com.sun.security.auth.UserPrincipal("Duke"),
98
new com.sun.security.auth.NTDomainPrincipal("openjdk.org"),
99
new com.sun.security.auth.NTSid(
100
"S-1-5-21-3623811015-3361044348-30300820-1013"),
101
new com.sun.security.auth.NTUserPrincipal("Duke"),
102
new com.sun.security.auth.UnixNumericUserPrincipal("0"),
103
new com.sun.security.auth.UnixPrincipal("duke"),
104
};
105
106
public static void main(String[] args) throws Exception {
107
108
for (Permission perm : perms) {
109
AccessController.checkPermission(perm);
110
}
111
112
Permission princPerm = new java.util.PropertyPermission("user.home",
113
"read");
114
Set<Principal> princSet = new HashSet<>(Arrays.asList(princs));
115
Subject subject = new Subject(true, princSet, Collections.emptySet(),
116
Collections.emptySet());
117
PrivilegedAction<Void> pa = () -> {
118
AccessController.checkPermission(princPerm);
119
return null;
120
};
121
Subject.doAsPrivileged(subject, pa, null);
122
}
123
}
124
125