blob: 819f5ea2e9e90a235eeef81e40122d3288732674 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2000-2004 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/*
25 * @test
26 * @author Charlie Lai
27 * @bug 4394746
28 * @summary Resources should not be loaded until necessar
29 * @run main/othervm/policy=Format.policy -Djava.security.auth.login.config=file:${test.src}/Format.config Format
30 *
31 */
32
33import javax.security.auth.*;
34import javax.security.auth.login.*;
35import javax.security.auth.callback.*;
36import java.io.*;
37import java.util.*;
38
39import com.sun.security.auth.*;
40
41public class Format
42 implements java.io.Serializable, java.security.Principal
43{
44
45 public String getName() { return null; }
46
47 public static void main(String[] args) {
48
49 try {
50 PrivateCredentialPermission pcp = new PrivateCredentialPermission
51 ("test", "write");
52 throw new SecurityException("test 1 failed");
53 } catch (IllegalArgumentException iae) {
54 // good
55 System.out.println("Test 1: " + iae.getMessage());
56 }
57
58 try {
59 PrivateCredentialPermission pcp = new PrivateCredentialPermission
60 ("Format", "read");
61 throw new SecurityException("test 2 failed");
62 } catch (IllegalArgumentException iae) {
63 // good
64 System.out.println("Test 2: " + iae.getMessage());
65 }
66
67 try {
68 PrivateCredentialPermission pcp = new PrivateCredentialPermission
69 ("Format Format", "read");
70 throw new SecurityException("test 3 failed");
71 } catch (IllegalArgumentException iae) {
72 // good
73 System.out.println("Test 3: " + iae.getMessage());
74 }
75
76 try {
77 PrivateCredentialPermission pcp = new PrivateCredentialPermission
78 ("Format Format Format", "read");
79 throw new SecurityException("test 4 failed");
80 } catch (IllegalArgumentException iae) {
81 // good
82 System.out.println("Test 4: " + iae.getMessage());
83 }
84
85 try {
86 PrivateCredentialPermission pcp = new PrivateCredentialPermission
87 ("Format Format \"Format", "read");
88 throw new SecurityException("test 5 failed");
89 } catch (IllegalArgumentException iae) {
90 // good
91 System.out.println("Test 5: " + iae.getMessage());
92 }
93
94 try {
95 PrivateCredentialPermission pcp = new PrivateCredentialPermission
96 ("Format * \"Format\"", "read");
97 throw new SecurityException("test 6 failed");
98 } catch (IllegalArgumentException iae) {
99 // good
100 System.out.println("Test 6: " + iae.getMessage());
101 }
102
103 try {
104 javax.security.auth.x500.X500Principal p =
105 new javax.security.auth.x500.X500Principal((String)null);
106 throw new SecurityException("test 7 failed");
107 } catch (NullPointerException npe) {
108 // good
109 System.out.println("Test 7: " + npe.getMessage());
110 }
111
112 try {
113 Subject s = new Subject(false, null, null, null);
114 throw new SecurityException("test 8 failed");
115 } catch (NullPointerException npe) {
116 // good
117 System.out.println("Test 8: " + npe.getMessage());
118 }
119
120 try {
121 Subject.getSubject(null);
122 throw new SecurityException("test 9 failed");
123 } catch (NullPointerException npe) {
124 // good
125 System.out.println("Test 9: " + npe.getMessage());
126 }
127
128 try {
129 Subject.doAs(null, (java.security.PrivilegedAction)null);
130 throw new SecurityException("test 10 failed");
131 } catch (NullPointerException npe) {
132 // good
133 System.out.println("Test 10: " + npe.getMessage());
134 }
135
136 try {
137 Subject s = new Subject();
138 s.getPrincipals(null);
139 throw new SecurityException("test 11 failed");
140 } catch (NullPointerException npe) {
141 // good
142 System.out.println("Test 11: " + npe.getMessage());
143 }
144
145 try {
146 Subject s = new Subject();
147 s.getPrincipals().add(new javax.security.auth.x500.X500Principal
148 ("cn=test1"));
149 s.getPublicCredentials().add(new Format());
150 s.getPrivateCredentials().add(new Format());
151 System.out.println("Test 12, s.toString() = " + s.toString());
152 } catch (Exception e) {
153 throw new SecurityException("test 12 failed: e.toString()");
154 }
155
156 try {
157 Subject s = new Subject();
158 s.getPrincipals().add(new javax.security.auth.x500.X500Principal
159 ("cn=test1"));
160 s.setReadOnly();
161 java.util.Iterator i = s.getPrincipals().iterator();
162 i.next();
163 i.remove();
164 throw new SecurityException("test 13 failed");
165 } catch (IllegalStateException ise) {
166 // good
167 System.out.println("Test 13: " + ise.getMessage());
168 }
169
170 try {
171 Subject s = new Subject();
172 s.getPrincipals().add(new Format());
173 throw new SecurityException("test 14 failed");
174 } catch (SecurityException se) {
175 // good
176 System.out.println("Test 14: " + se.getMessage());
177 }
178
179 try {
180 Subject s = new Subject();
181 s.getPrincipals((Class)Format.class).add(new Subject());
182 throw new SecurityException("test 15 failed");
183 } catch (SecurityException se) {
184 // good
185 System.out.println("Test 15: " + se.getMessage());
186 }
187
188 try {
189 LoginContext lc = new LoginContext(null);
190 throw new SecurityException("test 16 failed");
191 } catch (LoginException le) {
192 // good
193 System.out.println("Test 16: " + le.getMessage());
194 }
195
196 try {
197 LoginContext lc = new LoginContext("nothing");
198 throw new SecurityException("test 17 failed");
199 } catch (LoginException le) {
200 // good
201 System.out.println("Test 17: " + le.getMessage());
202 }
203
204 try {
205 LoginContext lc = new LoginContext("test", (Subject)null);
206 throw new SecurityException("test 18 failed");
207 } catch (LoginException le) {
208 // good
209 System.out.println("Test 18: " + le.getMessage());
210 }
211
212 try {
213 LoginContext lc = new LoginContext("test", (CallbackHandler)null);
214 throw new SecurityException("test 19 failed");
215 } catch (LoginException le) {
216 // good
217 System.out.println("Test 19: " + le.getMessage());
218 }
219
220 try {
221 LoginContext lc = new LoginContext("test");
222 lc.logout();
223 throw new SecurityException("test 20 failed");
224 } catch (LoginException le) {
225 // good
226 System.out.println("Test 20: " + le.getMessage());
227 }
228
229 try {
230 LoginContext lc = new LoginContext("test2");
231 lc.login();
232 throw new SecurityException("test 21 failed");
233 } catch (LoginException le) {
234 // good
235 System.out.println("Test 21: " + le.getMessage());
236 }
237
238 /*** TESTS FOR THE COM PACKAGE RESOURCES ***/
239
240 try {
241 NTDomainPrincipal p = new NTDomainPrincipal(null);
242 throw new SecurityException("test 22 failed");
243 } catch (NullPointerException e) {
244 // good
245 System.out.println("Test 22: " + e.getMessage());
246 }
247
248 try {
249 NTDomainPrincipal p = new NTDomainPrincipal("test");
250 System.out.println("NTDomainPrincipal = " + p.toString());
251 } catch (Exception e) {
252 throw new SecurityException("test 23 failed");
253 }
254
255 try {
256 NTNumericCredential p = new NTNumericCredential(1L);
257 System.out.println("NTNumericCredential = " + p.toString());
258 } catch (Exception e) {
259 throw new SecurityException("test 24 failed");
260 }
261
262 try {
263 NTSid p = new NTSid("");
264 throw new SecurityException("test 25 failed");
265 } catch (IllegalArgumentException e) {
266 // good
267 System.out.println("Test 25: " + e.getMessage());
268 }
269
270 try {
271 NTSid p = new NTSid("test");
272 System.out.println("NTSid = " + p.toString());
273 } catch (Exception e) {
274 throw new SecurityException("test 26 failed");
275 }
276
277 try {
278 NTSidDomainPrincipal p = new NTSidDomainPrincipal("test");
279 System.out.println("NTSidDomainPrincipal = " + p.toString());
280 } catch (Exception e) {
281 throw new SecurityException("test 27 failed");
282 }
283
284 try {
285 NTSidGroupPrincipal p = new NTSidGroupPrincipal("test");
286 System.out.println("NTSidGroupPrincipal = " + p.toString());
287 } catch (Exception e) {
288 throw new SecurityException("test 28 failed");
289 }
290
291 try {
292 NTSidPrimaryGroupPrincipal p =
293 new NTSidPrimaryGroupPrincipal("test");
294 System.out.println("NTSidPrimaryGroupPrincipal = " + p.toString());
295 } catch (Exception e) {
296 throw new SecurityException("test 29 failed");
297 }
298
299 try {
300 NTSidUserPrincipal p = new NTSidUserPrincipal("test");
301 System.out.println("NTSidUserPrincipal = " + p.toString());
302 } catch (Exception e) {
303 throw new SecurityException("test 30 failed");
304 }
305
306 try {
307 NTUserPrincipal p = new NTUserPrincipal("test");
308 System.out.println("NTUserPrincipal = " + p.toString());
309 } catch (Exception e) {
310 throw new SecurityException("test 31 failed");
311 }
312
313 try {
314 UnixNumericGroupPrincipal p = new UnixNumericGroupPrincipal("0",
315 true);
316 System.out.println("NTPrimaryGroupPrincipal = " + p.toString());
317 } catch (Exception e) {
318 throw new SecurityException("test 32 failed");
319 }
320
321 try {
322 UnixNumericGroupPrincipal p = new UnixNumericGroupPrincipal("1",
323 false);
324 System.out.println("UnixNumericGroupPrincipal = " + p.toString());
325 } catch (Exception e) {
326 throw new SecurityException("test 33 failed");
327 }
328
329 try {
330 UnixNumericUserPrincipal p = new UnixNumericUserPrincipal("2");
331 System.out.println("UnixNumericUserPrincipal = " + p.toString());
332 } catch (Exception e) {
333 throw new SecurityException("test 34 failed");
334 }
335
336 try {
337 UnixPrincipal p = new UnixPrincipal("test");
338 System.out.println("UnixPrincipal = " + p.toString());
339 } catch (Exception e) {
340 throw new SecurityException("test 35 failed");
341 }
342
343 System.out.println("Format test succeeded");
344 }
345}