KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > scenario > standalone > authentication > AuthenticationManagerTest


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Mathieu Peltier.
22  * Contributor(s): ______________________________________.
23  */

24
25 package org.objectweb.cjdbc.scenario.standalone.authentication;
26
27 import org.objectweb.cjdbc.common.users.AdminUser;
28 import org.objectweb.cjdbc.common.users.DatabaseBackendUser;
29 import org.objectweb.cjdbc.common.users.VirtualDatabaseUser;
30 import org.objectweb.cjdbc.controller.authentication.AuthenticationManager;
31 import org.objectweb.cjdbc.controller.authentication.AuthenticationManagerException;
32 import org.objectweb.cjdbc.scenario.templates.NoTemplate;
33
34 /**
35  * <code>AuthenticationManager</code> test class.
36  *
37  * @author <a HREF="Mathieu.Peltier@inrialpes.fr">Mathieu Peltier</a>
38  * @see org.objectweb.cjdbc.controller.authentication.AuthenticationManager
39  */

40 public class AuthenticationManagerTest extends NoTemplate
41 {
42   /** Authentication manager. */
43   private AuthenticationManager manager;
44
45   /** Virtual database user. */
46   private VirtualDatabaseUser virtualUser1,
47     virtualUser2,
48     virtualUser3,
49     virtualUser4;
50   
51   /** Admin users */
52   private AdminUser adminUser1,adminUser2,adminUser3,adminUser4;
53
54   /** Database backend user. */
55   private DatabaseBackendUser realUser1, realUser2, realUser3, realUser4;
56
57   /**
58    * @see junit.framework.TestCase#setUp()
59    */

60   protected void setUp()
61   {
62     // create virtual database users
63
virtualUser1 = new VirtualDatabaseUser("virtualLogin1", "userPassword1");
64     virtualUser2 = new VirtualDatabaseUser("virtualLogin2", "userPassword2");
65     virtualUser3 = new VirtualDatabaseUser("virtualLogin3", "userPassword3");
66     virtualUser4 = new VirtualDatabaseUser("virtualLogin4", "userPassword4");
67
68     // create admin users
69
adminUser1 = new AdminUser("admin1","admin");
70     adminUser2 = new AdminUser("admin2","admin");
71     adminUser3 = new AdminUser("admin3","admin");
72     adminUser4 = new AdminUser("admin4","admin");
73     
74     // create database backend users
75
realUser1 =
76       new DatabaseBackendUser("backend1", "realLogin1", "userPassword1");
77     realUser2 =
78       new DatabaseBackendUser("backend1", "realLogin2", "userPassword2");
79     realUser3 =
80       new DatabaseBackendUser("backend2", "realLogin3", "userPassword3");
81     realUser4 =
82       new DatabaseBackendUser("backend2", "realLogin4", "userPassword4");
83
84     // create the authentication manager
85
manager = new AuthenticationManager();
86   }
87
88   /**
89    * @see org.objectweb.cjdbc.controller.authentication.AuthenticationManager#isValidAdminUser(AdminUser)
90    */

91   public void testIsValidAdminUser()
92   {
93     // no admin user set
94
assertFalse(manager.isValidAdminUser(adminUser1));
95     assertFalse(manager.isValidAdminUser(adminUser2));
96     assertFalse(manager.isValidAdminUser(adminUser3));
97     assertFalse(manager.isValidAdminUser(adminUser4));
98
99     // set admin user
100
manager.addAdminUser(adminUser1);
101     assertTrue(manager.isValidAdminUser(adminUser1));
102     assertFalse(manager.isValidAdminUser(adminUser2));
103     assertFalse(manager.isValidAdminUser(adminUser3));
104     assertFalse(manager.isValidAdminUser(adminUser4));
105
106     // remplace admin user by another
107
manager.addAdminUser(adminUser2);
108     assertTrue(manager.isValidAdminUser(adminUser1));
109     assertTrue(manager.isValidAdminUser(adminUser2));
110     assertFalse(manager.isValidAdminUser(adminUser3));
111     assertFalse(manager.isValidAdminUser(adminUser4));
112   }
113
114   /**
115    * @see org.objectweb.cjdbc.controller.authentication.AuthenticationManager#isValidVirtualUser(VirtualDatabaseUser)
116    */

117   public void testIsValidVirtualUser()
118   {
119     // add virtualUser1 and virtualUser2 to the manager
120
manager.addVirtualUser(virtualUser1);
121     manager.addVirtualUser(virtualUser2);
122
123     assertTrue(manager.isValidVirtualUser(virtualUser1));
124     assertTrue(manager.isValidVirtualUser(virtualUser2));
125     assertFalse(manager.isValidVirtualUser(virtualUser3));
126     assertFalse(manager.isValidVirtualUser(virtualUser4));
127   }
128
129   /**
130    * @see org.objectweb.cjdbc.controller.authentication.AuthenticationManager#isValidVirtualLogin(String)
131    */

132   public void testIsValidVirtualLogin()
133   {
134     // add virtualUser1 and virtualUser2 to the manager
135
manager.addVirtualUser(virtualUser1);
136     manager.addVirtualUser(virtualUser2);
137
138     assertTrue(manager.isValidVirtualLogin("virtualLogin1"));
139     assertTrue(manager.isValidVirtualLogin("virtualLogin2"));
140     assertFalse(manager.isValidVirtualLogin("virtualLogin3"));
141     assertFalse(manager.isValidVirtualLogin("virtualLogin4"));
142   }
143
144   /**
145    * @see org.objectweb.cjdbc.controller.authentication.AuthenticationManager#addRealUser(String,
146    * DatabaseBackendUser)
147    */

148   public void testAddRealUser()
149   {
150     try
151     {
152       // virtualLogin1 is mapped to realLogin1 on backend1 and realLogin3 on
153
// backend2
154
manager.addRealUser("virtualLogin1", realUser1);
155       manager.addRealUser("virtualLogin1", realUser3);
156
157       // virtualLogin2 is mapped to realLogin2 (backend1)
158
manager.addRealUser("virtualLogin2", realUser2);
159     }
160     catch (AuthenticationManagerException e)
161     {
162       fail("Exception thrown: " + e);
163     }
164
165     assertEquals(
166       realUser1,
167       manager.getDatabaseBackendUser("virtualLogin1", "backend1"));
168     assertEquals(
169       realUser3,
170       manager.getDatabaseBackendUser("virtualLogin1", "backend2"));
171     assertEquals(
172       realUser2,
173       manager.getDatabaseBackendUser("virtualLogin2", "backend1"));
174     assertNull(manager.getDatabaseBackendUser("virtualLogin2", "backend2"));
175
176     // try to add another real user on backend backend1 for virtual login
177
// virtualLogin2
178
try
179     {
180       manager.addRealUser("virtualLogin2", realUser1);
181       fail("Exception not thrown while trying to add two real users on the same backend for the same virtual login");
182     }
183     catch (AuthenticationManagerException e)
184     {
185     }
186
187     // map virtualLogin2 to realLogin4 on backend2
188
try
189     {
190       manager.addRealUser("virtualLogin2", realUser4);
191     }
192     catch (AuthenticationManagerException e)
193     {
194       fail("Exception thrown: " + e);
195     }
196
197     assertEquals(
198       realUser1,
199       manager.getDatabaseBackendUser("virtualLogin1", "backend1"));
200     assertEquals(
201       realUser3,
202       manager.getDatabaseBackendUser("virtualLogin1", "backend2"));
203     assertEquals(
204       realUser2,
205       manager.getDatabaseBackendUser("virtualLogin2", "backend1"));
206     assertEquals(
207       realUser4,
208       manager.getDatabaseBackendUser("virtualLogin2", "backend2"));
209   }
210 }
Popular Tags