Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/security/Policy/GetInstance/GetInstance.java
41153 views
1
/*
2
* Copyright (c) 2005, 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 5100561
27
* @bug 6273812
28
* @summary Can not explicitly create a java.security.Policy object from a file
29
* @modules java.base/sun.security.provider
30
* @build GetInstancePolicySpi GetInstanceProvider
31
* @run main/othervm/policy=GetInstance.policy GetInstance
32
*/
33
34
import java.security.*;
35
36
import java.io.File;
37
import java.net.URI;
38
39
public class GetInstance {
40
41
private static final String JAVA_POLICY = "JavaPolicy";
42
43
private static class BadParam implements Policy.Parameters { }
44
45
public static void main(String[] args) throws Exception {
46
47
int testnum = 1;
48
GetInstance gi = new GetInstance();
49
50
testnum = gi.testDefault(testnum);
51
testnum = gi.testStringProvider(testnum);
52
testnum = gi.testProvider(testnum);
53
testnum = gi.testCustomImpl(testnum);
54
testnum = gi.testBadParam(testnum);
55
56
// make this go last because we don't want to leave its policy set
57
// for other tests
58
testnum = gi.testURIParam(testnum);
59
}
60
61
private int testDefault(int testnum) throws Exception {
62
// get an instance of the default PolicySpiFile
63
Policy p = Policy.getInstance(JAVA_POLICY, null);
64
doTest(p, testnum++);
65
Policy.setPolicy(p);
66
doTestSM(testnum++);
67
68
// get an instance of FooPolicy
69
try {
70
p = Policy.getInstance("FooPolicy", null);
71
throw new SecurityException("test " + testnum++ + " failed");
72
} catch (NoSuchAlgorithmException nsae) {
73
// good
74
System.out.println("test " + testnum++ + " passed");
75
}
76
77
return testnum;
78
}
79
80
private int testStringProvider(int testnum) throws Exception {
81
// get an instance of JavaPolicy from SUN
82
Policy p = Policy.getInstance(JAVA_POLICY, null, "SUN");
83
doTest(p, testnum++);
84
Policy.setPolicy(p);
85
doTestSM(testnum++);
86
87
// get an instance of JavaPolicy from SunRsaSign
88
try {
89
p = Policy.getInstance(JAVA_POLICY, null, "SunRsaSign");
90
throw new SecurityException("test " + testnum++ + " failed");
91
} catch (NoSuchAlgorithmException nsae) {
92
// good
93
System.out.println("test " + testnum++ + " passed");
94
}
95
96
// get an instance of JavaPolicy from FOO
97
try {
98
p = Policy.getInstance(JAVA_POLICY, null, "FOO");
99
throw new SecurityException("test " + testnum++ + " failed");
100
} catch (NoSuchProviderException nspe) {
101
// good
102
System.out.println("test " + testnum++ + " passed");
103
}
104
105
return testnum;
106
}
107
108
private int testProvider(int testnum) throws Exception {
109
// get an instance of JavaPolicy from SUN
110
Policy p = Policy.getInstance(JAVA_POLICY,
111
null,
112
Security.getProvider("SUN"));
113
doTest(p, testnum++);
114
Policy.setPolicy(p);
115
doTestSM(testnum++);
116
117
// get an instance of JavaPolicy from SunRsaSign
118
try {
119
p = Policy.getInstance(JAVA_POLICY,
120
null,
121
Security.getProvider("SunRsaSign"));
122
throw new SecurityException("test " + testnum++ + " failed");
123
} catch (NoSuchAlgorithmException nsae) {
124
// good
125
System.out.println("test " + testnum++ + " passed");
126
}
127
128
return testnum;
129
}
130
131
private int testBadParam(int testnum) throws Exception {
132
133
// pass bad param
134
135
try {
136
Policy p = Policy.getInstance(JAVA_POLICY,
137
new BadParam());
138
throw new SecurityException("test " + testnum++ + " failed");
139
} catch (IllegalArgumentException iae) {
140
// good
141
System.out.println("test " + testnum++ + " passed");
142
}
143
144
try {
145
Policy p = Policy.getInstance(JAVA_POLICY,
146
new BadParam(),
147
"SUN");
148
throw new SecurityException("test " + testnum++ + " failed");
149
} catch (IllegalArgumentException iae) {
150
// good
151
System.out.println("test " + testnum++ + " passed");
152
}
153
154
try {
155
Policy p = Policy.getInstance(JAVA_POLICY,
156
new BadParam(),
157
Security.getProvider("SUN"));
158
throw new SecurityException("test " + testnum++ + " failed");
159
} catch (IllegalArgumentException iae) {
160
// good
161
System.out.println("test " + testnum++ + " passed");
162
}
163
164
return testnum;
165
}
166
167
private int testURIParam(int testnum) throws Exception {
168
// get an instance of JavaPolicy from SUN and have it read from the URL
169
170
File file = new File(System.getProperty("test.src", "."),
171
"GetInstance.policyURL");
172
URI uri = file.toURI();
173
Policy p = Policy.getInstance(JAVA_POLICY, new URIParameter(uri));
174
175
doTest(p, testnum++);
176
Policy.setPolicy(p);
177
doTestSM(testnum++);
178
179
return testnum;
180
}
181
182
private int testCustomImpl(int testnum) throws Exception {
183
Provider customProvider = new GetInstanceProvider();
184
Policy p = Policy.getInstance("GetInstancePolicySpi",
185
null,
186
customProvider);
187
188
// doTest has a case that will not work with custom policies,
189
// so do not call it
190
//
191
// doTest(p, testnum++);
192
193
Policy.setPolicy(p);
194
doTestSM(testnum++);
195
196
return testnum;
197
}
198
199
private void doTest(Policy p, int testnum) throws Exception {
200
201
// check granted perm
202
if (p.implies(this.getClass().getProtectionDomain(),
203
new SecurityPermission("GetInstanceTest"))) {
204
System.out.println("test " + testnum + ".1 passed");
205
} else {
206
throw new SecurityException("test " + testnum + ".1 failed");
207
}
208
209
// check perm not granted
210
if (p.implies(this.getClass().getProtectionDomain(),
211
new SecurityPermission("NotGranted"))) {
212
throw new SecurityException("test " + testnum + ".2 failed");
213
} else {
214
System.out.println("test " + testnum + ".2 passed");
215
}
216
217
// test getProvider
218
if ("SUN".equals(p.getProvider().getName())) {
219
System.out.println("test " + testnum + ".3 passed");
220
} else {
221
throw new SecurityException("test " + testnum + ".3 failed");
222
}
223
224
// test getType
225
if (JAVA_POLICY.equals(p.getType())) {
226
System.out.println("test " + testnum + ".4 passed");
227
} else {
228
throw new SecurityException("test " + testnum + ".4 failed");
229
}
230
}
231
232
private void doTestSM(int testnum) throws Exception {
233
234
// check granted perm
235
System.getSecurityManager().checkPermission
236
(new SecurityPermission("GetInstanceTest"));
237
System.out.println("test " + testnum + ".1 passed");
238
239
// check perm not granted
240
try {
241
System.getSecurityManager().checkPermission
242
(new SecurityPermission("NotGranted"));
243
throw new RuntimeException("test " + testnum + ".2 failed");
244
} catch (SecurityException se) {
245
System.out.println("test " + testnum + ".2 passed");
246
}
247
}
248
}
249
250