01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
11: *
12: * This software is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package org.jboss.test.security.test;
23:
24: import java.util.HashMap;
25: import javax.security.auth.Subject;
26: import javax.security.auth.login.AppConfigurationEntry;
27: import javax.security.auth.login.Configuration;
28: import javax.security.auth.login.LoginContext;
29:
30: /** A JUnit TestCase for the JAAS LoginContext usage.
31: *
32: * @author Scott.Stark@jboss.org
33: * @version $Revision: 57211 $
34: */
35: public class LoginContextUnitTestCase extends junit.framework.TestCase {
36: Subject subject1;
37: Subject subject2;
38:
39: static class MyConfig extends Configuration {
40: AppConfigurationEntry[] entry;
41:
42: MyConfig() {
43: entry = new AppConfigurationEntry[1];
44: HashMap opt0 = new HashMap();
45: opt0.put("principal", "starksm");
46: entry[0] = new AppConfigurationEntry(
47: "org.jboss.security.auth.spi.IdentityLoginModule",
48: AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,
49: opt0);
50: //entry[1] = new AppConfigurationEntry("org.jboss.security.plugins.samples.RolesLoginModule", AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, new HashMap());
51: }
52:
53: public AppConfigurationEntry[] getAppConfigurationEntry(
54: String appName) {
55: return entry;
56: }
57:
58: public void refresh() {
59: }
60: }
61:
62: public LoginContextUnitTestCase(String name) {
63: super (name);
64: }
65:
66: protected void setUp() throws Exception {
67: Configuration.setConfiguration(new MyConfig());
68: }
69:
70: public void testLogin1() throws Exception {
71: subject1 = new Subject();
72: LoginContext lc = new LoginContext("LoginContext", subject1);
73: lc.login();
74: Subject lcSubject = lc.getSubject();
75: assertTrue("subject == lcSubject", subject1 == lcSubject);
76: }
77:
78: public void testLogin2() throws Exception {
79: subject2 = new Subject();
80: LoginContext lc = new LoginContext("LoginContext", subject2);
81: lc.login();
82: Subject lcSubject = lc.getSubject();
83: assertTrue("subject == lcSubject", subject2 == lcSubject);
84: }
85: }
|