1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.providers.cas;
17
18 import junit.framework.TestCase;
19
20 import org.acegisecurity.GrantedAuthority;
21 import org.acegisecurity.GrantedAuthorityImpl;
22 import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
23 import org.acegisecurity.userdetails.User;
24 import org.acegisecurity.userdetails.UserDetails;
25
26 import java.util.List;
27 import java.util.Vector;
28
29
30 /***
31 * Tests {@link CasAuthenticationToken}.
32 *
33 * @author Ben Alex
34 * @version $Id: CasAuthenticationTokenTests.java,v 1.9 2005/11/29 13:10:08 benalex Exp $
35 */
36 public class CasAuthenticationTokenTests extends TestCase {
37
38
39 public CasAuthenticationTokenTests() {
40 super();
41 }
42
43 public CasAuthenticationTokenTests(String arg0) {
44 super(arg0);
45 }
46
47
48
49 public final void setUp() throws Exception {
50 super.setUp();
51 }
52
53 public static void main(String[] args) {
54 junit.textui.TestRunner.run(CasAuthenticationTokenTests.class);
55 }
56
57 public void testConstructorRejectsNulls() {
58 try {
59 new CasAuthenticationToken(null, "Test", "Password",
60 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
61 "ROLE_TWO")}, makeUserDetails(), new Vector(),
62 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
63 fail("Should have thrown IllegalArgumentException");
64 } catch (IllegalArgumentException expected) {
65 assertTrue(true);
66 }
67
68 try {
69 new CasAuthenticationToken("key", null, "Password",
70 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
71 "ROLE_TWO")}, makeUserDetails(), new Vector(),
72 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
73 fail("Should have thrown IllegalArgumentException");
74 } catch (IllegalArgumentException expected) {
75 assertTrue(true);
76 }
77
78 try {
79 new CasAuthenticationToken("key", "Test", null,
80 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
81 "ROLE_TWO")}, makeUserDetails(), new Vector(),
82 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
83 fail("Should have thrown IllegalArgumentException");
84 } catch (IllegalArgumentException expected) {
85 assertTrue(true);
86 }
87
88 try {
89 new CasAuthenticationToken("key", "Test", "Password", null,
90 makeUserDetails(), new Vector(),
91 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
92 fail("Should have thrown IllegalArgumentException");
93 } catch (IllegalArgumentException expected) {
94 assertTrue(true);
95 }
96
97 try {
98 new CasAuthenticationToken("key", "Test", "Password",
99 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
100 "ROLE_TWO")}, makeUserDetails(), null,
101 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
102 fail("Should have thrown IllegalArgumentException");
103 } catch (IllegalArgumentException expected) {
104 assertTrue(true);
105 }
106
107 try {
108 new CasAuthenticationToken("key", "Test", "Password",
109 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
110 "ROLE_TWO")}, null, new Vector(),
111 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
112 fail("Should have thrown IllegalArgumentException");
113 } catch (IllegalArgumentException expected) {
114 assertTrue(true);
115 }
116
117 try {
118 new CasAuthenticationToken("key", "Test", "Password",
119 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
120 "ROLE_TWO")}, makeUserDetails(), new Vector(), null);
121 fail("Should have thrown IllegalArgumentException");
122 } catch (IllegalArgumentException expected) {
123 assertTrue(true);
124 }
125
126 try {
127 new CasAuthenticationToken("key", "Test", "Password",
128 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), null, new GrantedAuthorityImpl(
129 "ROLE_TWO")}, makeUserDetails(), new Vector(),
130 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
131 fail("Should have thrown IllegalArgumentException");
132 } catch (IllegalArgumentException expected) {
133 assertTrue(true);
134 }
135 }
136
137 public void testEqualsWhenEqual() {
138 List proxyList1 = new Vector();
139 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
140
141 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
142 "Test", "Password",
143 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
144 "ROLE_TWO")}, makeUserDetails(), proxyList1,
145 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
146
147 List proxyList2 = new Vector();
148 proxyList2.add("https://localhost/newPortal/j_acegi_cas_security_check");
149
150 CasAuthenticationToken token2 = new CasAuthenticationToken("key",
151 "Test", "Password",
152 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
153 "ROLE_TWO")}, makeUserDetails(), proxyList2,
154 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
155
156 assertEquals(token1, token2);
157 }
158
159 public void testGetters() {
160
161 List proxyList = new Vector();
162 proxyList.add("https://localhost/newPortal/j_acegi_cas_security_check");
163
164 CasAuthenticationToken token = new CasAuthenticationToken("key",
165 "Test", "Password",
166 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
167 "ROLE_TWO")}, makeUserDetails(), proxyList,
168 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
169 assertEquals("key".hashCode(), token.getKeyHash());
170 assertEquals("Test", token.getPrincipal());
171 assertEquals("Password", token.getCredentials());
172 assertEquals("ROLE_ONE", token.getAuthorities()[0].getAuthority());
173 assertEquals("ROLE_TWO", token.getAuthorities()[1].getAuthority());
174 assertEquals("PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt",
175 token.getProxyGrantingTicketIou());
176 assertEquals(proxyList, token.getProxyList());
177 assertEquals(makeUserDetails().getUsername(),
178 token.getUserDetails().getUsername());
179 }
180
181 public void testNoArgConstructor() {
182 try {
183 new CasAuthenticationToken();
184 fail("Should have thrown IllegalArgumentException");
185 } catch (IllegalArgumentException expected) {
186 assertTrue(true);
187 }
188 }
189
190 public void testNotEqualsDueToAbstractParentEqualsCheck() {
191 List proxyList1 = new Vector();
192 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
193
194 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
195 "Test", "Password",
196 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
197 "ROLE_TWO")}, makeUserDetails(), proxyList1,
198 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
199
200 List proxyList2 = new Vector();
201 proxyList2.add("https://localhost/newPortal/j_acegi_cas_security_check");
202
203 CasAuthenticationToken token2 = new CasAuthenticationToken("key",
204 "OTHER_VALUE", "Password",
205 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
206 "ROLE_TWO")}, makeUserDetails(), proxyList2,
207 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
208
209 assertTrue(!token1.equals(token2));
210 }
211
212 public void testNotEqualsDueToDifferentAuthenticationClass() {
213 List proxyList1 = new Vector();
214 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
215
216 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
217 "Test", "Password",
218 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
219 "ROLE_TWO")}, makeUserDetails(), proxyList1,
220 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
221
222 UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test",
223 "Password",
224 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
225 "ROLE_TWO")});
226
227 assertTrue(!token1.equals(token2));
228 }
229
230 public void testNotEqualsDueToKey() {
231 List proxyList1 = new Vector();
232 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
233
234 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
235 "Test", "Password",
236 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
237 "ROLE_TWO")}, makeUserDetails(), proxyList1,
238 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
239
240 List proxyList2 = new Vector();
241 proxyList2.add("https://localhost/newPortal/j_acegi_cas_security_check");
242
243 CasAuthenticationToken token2 = new CasAuthenticationToken("DIFFERENT_KEY",
244 "Test", "Password",
245 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
246 "ROLE_TWO")}, makeUserDetails(), proxyList2,
247 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
248
249 assertTrue(!token1.equals(token2));
250 }
251
252 public void testNotEqualsDueToProxyGrantingTicket() {
253 List proxyList1 = new Vector();
254 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
255
256 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
257 "Test", "Password",
258 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
259 "ROLE_TWO")}, makeUserDetails(), proxyList1,
260 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
261
262 List proxyList2 = new Vector();
263 proxyList2.add("https://localhost/newPortal/j_acegi_cas_security_check");
264
265 CasAuthenticationToken token2 = new CasAuthenticationToken("key",
266 "Test", "Password",
267 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
268 "ROLE_TWO")}, makeUserDetails(), proxyList2,
269 "PGTIOU-SOME_OTHER_VALUE");
270
271 assertTrue(!token1.equals(token2));
272 }
273
274 public void testNotEqualsDueToProxyList() {
275 List proxyList1 = new Vector();
276 proxyList1.add("https://localhost/newPortal/j_acegi_cas_security_check");
277
278 CasAuthenticationToken token1 = new CasAuthenticationToken("key",
279 "Test", "Password",
280 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
281 "ROLE_TWO")}, makeUserDetails(), proxyList1,
282 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
283
284 List proxyList2 = new Vector();
285 proxyList2.add(
286 "https://localhost/SOME_OTHER_PORTAL/j_acegi_cas_security_check");
287
288 CasAuthenticationToken token2 = new CasAuthenticationToken("key",
289 "Test", "Password",
290 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
291 "ROLE_TWO")}, makeUserDetails(), proxyList2,
292 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
293
294 assertTrue(!token1.equals(token2));
295 }
296
297 public void testSetAuthenticated() {
298 CasAuthenticationToken token = new CasAuthenticationToken("key",
299 "Test", "Password",
300 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
301 "ROLE_TWO")}, makeUserDetails(), new Vector(),
302 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
303 assertTrue(token.isAuthenticated());
304 token.setAuthenticated(false);
305 assertTrue(!token.isAuthenticated());
306 }
307
308 public void testToString() {
309 CasAuthenticationToken token = new CasAuthenticationToken("key",
310 "Test", "Password",
311 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
312 "ROLE_TWO")}, makeUserDetails(), new Vector(),
313 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
314 String result = token.toString();
315 assertTrue(result.lastIndexOf("Proxy List:") != -1);
316 assertTrue(result.lastIndexOf("Proxy-Granting Ticket IOU:") != -1);
317 assertTrue(result.lastIndexOf("Credentials (Service/Proxy Ticket):") != -1);
318 }
319
320 private UserDetails makeUserDetails() {
321 return new User("user", "password", true, true, true, true,
322 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
323 "ROLE_TWO")});
324 }
325 }