1
2
3
4
5
6
7 package gov.bnl.gums.service;
8
9 import gov.bnl.gums.account.*;
10 import gov.bnl.gums.configuration.Configuration;
11 import gov.bnl.gums.groupToAccount.*;
12 import gov.bnl.gums.hostToGroup.*;
13 import gov.bnl.gums.persistence.*;
14 import gov.bnl.gums.userGroup.*;
15
16 import javax.servlet.http.HttpServletRequest;
17
18 import java.rmi.Remote;
19 import java.util.Collection;
20 import java.util.Iterator;
21 import java.util.Properties;
22
23
24
25
26
27
28 public class ConfigurationWebToolkit implements Remote {
29 static public CertificateHostToGroupMapping parseHostToGroupMapping(HttpServletRequest request) throws Exception {
30 CertificateHostToGroupMapping hostToGroupMapping = new CertificateHostToGroupMapping();
31 String type = request.getParameter("type").trim();
32 if(type.equals("cn"))
33 hostToGroupMapping.setCn( request.getParameter("name").trim() );
34 else if(type.equals("dn"))
35 hostToGroupMapping.setDn( request.getParameter("name").trim() );
36 hostToGroupMapping.setDescription( request.getParameter("description").trim() );
37 int counter = 0;
38 while(request.getParameter("g2AM" + counter)!=null) {
39 String g2AMName = request.getParameter("g2AM" + counter).trim();
40 if (!g2AMName.equals(""))
41 hostToGroupMapping.addGroupToAccountMapping(g2AMName);
42 counter++;
43 }
44
45 return hostToGroupMapping;
46 }
47
48 static public GroupToAccountMapping parseGroupToAccountMapping(HttpServletRequest request) throws Exception {
49 GroupToAccountMapping groupToAccountMapping = new GroupToAccountMapping();
50
51 groupToAccountMapping.setName( request.getParameter("name").trim() );
52 groupToAccountMapping.setDescription( request.getParameter("description").trim() );
53
54 int counter = 0;
55 while(request.getParameter("aM" + counter)!=null) {
56 String accountMapperName = request.getParameter("aM" + counter).trim();
57 if (!accountMapperName.equals(""))
58 groupToAccountMapping.addAccountMapper(accountMapperName);
59 counter++;
60 }
61
62 counter = 0;
63 while(request.getParameter("uG" + counter)!=null) {
64 String userGroupName = request.getParameter("uG" + counter).trim();
65 if (!userGroupName.equals(""))
66 groupToAccountMapping.addUserGroup(userGroupName);
67 counter++;
68 }
69
70 if (request.getParameter("accVoSub")!=null && !request.getParameter("accVoSub").equals("")) {
71 String trimmed = request.getParameter("accVoSub").trim();
72 if (trimmed.indexOf(" ")!=-1)
73 throw new RuntimeException("There cannot be a space in the accounting VO Subgroup");
74 if (request.getParameter("accVo").equals(""))
75 throw new RuntimeException("You must specify neither or both accounting VO subgroup and account VO");
76 groupToAccountMapping.setAccountingVoSubgroup(trimmed);
77
78 }
79
80 if (request.getParameter("accVo")!=null && !request.getParameter("accVo").equals("")) {
81 String trimmed = request.getParameter("accVo").trim();
82 if (trimmed.indexOf(" ")!=-1)
83 throw new RuntimeException("There cannot be a space in the accounting VO");
84 if (request.getParameter("accVoSub").equals(""))
85 throw new RuntimeException("You must specify neither or both accounting VO subgroup and account VO");
86 groupToAccountMapping.setAccountingVo(trimmed);
87
88 }
89
90 return groupToAccountMapping;
91 }
92
93 static public AccountMapper parseAccountMapper(HttpServletRequest request) throws Exception {
94 AccountMapper accountMapper = null;
95
96 String type = request.getParameter("type").trim();
97
98 if (type.equals(GroupAccountMapper.getTypeStatic())) {
99 accountMapper = new GroupAccountMapper();
100 accountMapper.setName( request.getParameter("name").trim() );
101 accountMapper.setDescription( request.getParameter("description").trim() );
102 if (request.getParameter("accountName")!=null)
103 ((GroupAccountMapper)accountMapper).setAccountName( request.getParameter("accountName").trim() );
104 }
105 else if (type.equals(ManualAccountMapper.getTypeStatic())) {
106 accountMapper = new ManualAccountMapper();
107 accountMapper.setName( request.getParameter("name").trim() );
108 accountMapper.setDescription( request.getParameter("description").trim() );
109 if (request.getParameter("persistenceFactory")!=null)
110 ((ManualAccountMapper)accountMapper).setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
111 }
112 else if (type.equals(AccountPoolMapper.getTypeStatic())) {
113 accountMapper = new AccountPoolMapper();
114 accountMapper.setName( request.getParameter("name").trim() );
115 accountMapper.setDescription( request.getParameter("description").trim() );
116 if (request.getParameter("accountPool")!=null)
117 ((AccountPoolMapper)accountMapper).setAccountPool( request.getParameter("accountPool").trim() );
118 if (request.getParameter("persistenceFactory")!=null)
119 ((AccountPoolMapper)accountMapper).setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
120 }
121 else if (type.equals(GecosLdapAccountMapper.getTypeStatic())) {
122 accountMapper = new GecosLdapAccountMapper();
123 accountMapper.setName( request.getParameter("name").trim() );
124 accountMapper.setDescription( request.getParameter("description").trim() );
125 if (request.getParameter("serviceUrl")!=null)
126 ((GecosLdapAccountMapper)accountMapper).setJndiLdapUrl( request.getParameter("serviceUrl").trim() );
127 if (request.getParameter("gecos")!=null)
128 ((GecosLdapAccountMapper)accountMapper).setGecosField( request.getParameter("gecos").trim() );
129 if (request.getParameter("account")!=null)
130 ((GecosLdapAccountMapper)accountMapper).setAccountField( request.getParameter("account").trim() );
131 }
132 else if (type.equals(LdapAccountMapper.getTypeStatic())) {
133 accountMapper = new LdapAccountMapper();
134 accountMapper.setName( request.getParameter("name").trim() );
135 accountMapper.setDescription( request.getParameter("description").trim() );
136 if (request.getParameter("serviceUrl")!=null)
137 ((LdapAccountMapper)accountMapper).setJndiLdapUrl( request.getParameter("serviceUrl").trim() );
138 if (request.getParameter("dn")!=null)
139 ((LdapAccountMapper)accountMapper).setDnField( request.getParameter("dn").trim() );
140 if (request.getParameter("account")!=null)
141 ((LdapAccountMapper)accountMapper).setAccountField( request.getParameter("account").trim() );
142 }
143 else if (type.equals(GecosNisAccountMapper.getTypeStatic())) {
144 accountMapper = new GecosNisAccountMapper();
145 accountMapper.setName( request.getParameter("name").trim() );
146 accountMapper.setDescription( request.getParameter("description").trim() );
147 if (request.getParameter("serviceUrl")!=null)
148 ((GecosNisAccountMapper)accountMapper).setJndiNisUrl( request.getParameter("serviceUrl").trim() );
149 if (request.getParameter("gecos")!=null)
150 ((GecosNisAccountMapper)accountMapper).setGecosField( request.getParameter("gecos").trim() );
151 if (request.getParameter("account")!=null)
152 ((GecosNisAccountMapper)accountMapper).setAccountField( request.getParameter("account").trim() );
153 }
154
155 return accountMapper;
156 }
157
158 static public UserGroup parseUserGroup(HttpServletRequest request) throws Exception {
159 UserGroup userGroup = null;
160
161 String type = request.getParameter("type");
162
163 if (type.equals(ManualUserGroup.getTypeStatic())) {
164 userGroup = new ManualUserGroup();
165 userGroup.setName( request.getParameter("name").trim() );
166 userGroup.setDescription( request.getParameter("description").trim() );
167 userGroup.setAccess( request.getParameter("access").trim() );
168 if (request.getParameter("persistenceFactory")!=null)
169 ((ManualUserGroup)userGroup).setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
170 } else if (type.equals(LDAPUserGroup.getTypeStatic())) {
171 userGroup = new LDAPUserGroup();
172 userGroup.setName( request.getParameter("name").trim() );
173 userGroup.setDescription( request.getParameter("description").trim() );
174 userGroup.setAccess( request.getParameter("access").trim() );
175 if (request.getParameter("server")!=null)
176 ((LDAPUserGroup)userGroup).setServer( request.getParameter("server").trim() );
177 if (request.getParameter("query")!=null)
178 ((LDAPUserGroup)userGroup).setQuery( request.getParameter("query").trim() );
179 if (request.getParameter("persistenceFactory")!=null)
180 ((LDAPUserGroup)userGroup).setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
181 if (request.getParameter("query")!=null)
182 ((LDAPUserGroup)userGroup).setQuery( request.getParameter("query").trim() );
183 if (request.getParameter("persistenceFactory")!=null)
184 ((LDAPUserGroup)userGroup).setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
185 if (request.getParameter("certDNField")!=null)
186 ((LDAPUserGroup)userGroup).setCertDNField( request.getParameter("certDNField").trim() );
187 } else if (type.equals(VOMSUserGroup.getTypeStatic())) {
188 userGroup = new VOMSUserGroup();
189 userGroup.setName( request.getParameter("name").trim() );
190 userGroup.setDescription( request.getParameter("description").trim() );
191 userGroup.setAccess( request.getParameter("access").trim() );
192 if (request.getParameter("vOrg")!=null)
193 ((VOMSUserGroup)userGroup).setVomsServer( request.getParameter("vOrg").trim() );
194 if (request.getParameter("url")!=null)
195 ((VOMSUserGroup)userGroup).setRemainderUrl( request.getParameter("url").trim() );
196 if (request.getParameter("nVOMS")!=null)
197 ((VOMSUserGroup)userGroup).setAcceptProxyWithoutFQAN( request.getParameter("nVOMS").trim().equals("true") );
198 if (request.getParameter("matchFQAN")!=null)
199 ((VOMSUserGroup)userGroup).setMatchFQAN( request.getParameter("matchFQAN") );
200 if (request.getParameter("vogroup")!=null)
201 ((VOMSUserGroup)userGroup).setVoGroup( request.getParameter("vogroup") );
202 if (request.getParameter("role")!=null)
203 ((VOMSUserGroup)userGroup).setRole( request.getParameter("role") );
204 }
205
206 return userGroup;
207 }
208
209 static public VomsServer parseVomsServer(HttpServletRequest request) throws Exception {
210 VomsServer vomsServer = new VomsServer();
211 vomsServer.setName( request.getParameter("name").trim() );
212 vomsServer.setDescription( request.getParameter("description").trim() );
213 if (request.getParameter("persistenceFactory")!=null)
214 vomsServer.setPersistenceFactory( request.getParameter("persistenceFactory").trim() );
215 if (request.getParameter("baseURL")!=null)
216 vomsServer.setBaseUrl( request.getParameter("baseURL").trim() );
217 if (request.getParameter("sslKey")!=null)
218 vomsServer.setSslKey( request.getParameter("sslKey").trim() );
219 if (request.getParameter("sslCert")!=null)
220 vomsServer.setSslCertfile( request.getParameter("sslCert").trim() );
221 if (request.getParameter("sslCA")!=null)
222 vomsServer.setSslCAFiles( request.getParameter("sslCA").trim() );
223 if (request.getParameter("sslKeyPW")!=null)
224 vomsServer.setSslKeyPasswd( request.getParameter("sslKeyPW").trim() );
225 return vomsServer;
226 }
227
228 static public PersistenceFactory parsePersistenceFactory(HttpServletRequest request) throws Exception {
229 PersistenceFactory persistenceFactory = null;
230
231 String type = request.getParameter("type");
232
233 if (type.equals(HibernatePersistenceFactory.getTypeStatic())) {
234 persistenceFactory = new HibernatePersistenceFactory();
235 persistenceFactory.setName( request.getParameter("name").trim() );
236 persistenceFactory.setDescription( request.getParameter("description").trim() );
237 ((HibernatePersistenceFactory)persistenceFactory).setProperties( getHibernateProperties(persistenceFactory, request, false) );
238 }
239 else if (type.equals(LDAPPersistenceFactory.getTypeStatic())) {
240 persistenceFactory = new LDAPPersistenceFactory();
241 persistenceFactory.setName( request.getParameter("name").trim() );
242 persistenceFactory.setDescription( request.getParameter("description").trim() );
243 ((LDAPPersistenceFactory)persistenceFactory).setSynchGroups( request.getParameter("synchGroups")!=null ? request.getParameter("synchGroups").trim().equals("true") : false );
244 ((LDAPPersistenceFactory)persistenceFactory).setCaCertFile( request.getParameter("caCertFile")!=null ? request.getParameter("caCertFile").trim() : "" );
245 ((LDAPPersistenceFactory)persistenceFactory).setTrustStorePassword( request.getParameter("tsPassword")!=null ? request.getParameter("tsPassword").trim() : "" );
246 if (request.getParameter("groupIdField")!=null)
247 ((LDAPPersistenceFactory)persistenceFactory).setGroupIdField( request.getParameter("groupIdField") );
248 if (request.getParameter("accountField")!=null)
249 ((LDAPPersistenceFactory)persistenceFactory).setAccountField( request.getParameter("accountField") );
250 if (request.getParameter("memAccField")!=null)
251 ((LDAPPersistenceFactory)persistenceFactory).setMemberAccountField( request.getParameter("memAccField") );
252 ((LDAPPersistenceFactory)persistenceFactory).setProperties( getLdapProperties(persistenceFactory, request, false) );
253 }
254 else if (type.equals(LocalPersistenceFactory.getTypeStatic())) {
255 persistenceFactory = new LocalPersistenceFactory();
256 persistenceFactory.setName( request.getParameter("name").trim() );
257 persistenceFactory.setDescription( request.getParameter("description").trim() );
258 ((LocalPersistenceFactory)persistenceFactory).setSynchGroups( request.getParameter("synchGroups")!=null ? request.getParameter("synchGroups").trim().equals("true") : false );
259 ((LocalPersistenceFactory)persistenceFactory).setCaCertFile( request.getParameter("caCertFile")!=null ? request.getParameter("caCertFile").trim() : "" );
260 ((LocalPersistenceFactory)persistenceFactory).setTrustStorePassword( request.getParameter("tsPassword")!=null ? request.getParameter("tsPassword").trim() : "" );
261 if (request.getParameter("groupIdField")!=null)
262 ((LocalPersistenceFactory)persistenceFactory).setGroupIdField( request.getParameter("groupIdField") );
263 if (request.getParameter("accountField")!=null)
264 ((LocalPersistenceFactory)persistenceFactory).setAccountField( request.getParameter("accountField") );
265 if (request.getParameter("memAccField")!=null)
266 ((LocalPersistenceFactory)persistenceFactory).setMemberAccountField( request.getParameter("memAccField") );
267 Properties properties = getHibernateProperties(persistenceFactory, request, true);
268 properties.putAll(getLdapProperties(persistenceFactory, request, true));
269 ((LocalPersistenceFactory)persistenceFactory).setProperties( properties );
270 }
271
272 return persistenceFactory;
273 }
274
275 static public Properties getHibernateProperties(PersistenceFactory persistenceFactory, HttpServletRequest request, boolean includeMySql) {
276 Properties properties = new Properties();
277 properties.put((includeMySql?"mysql.":"") + "hibernate.connection.url", (request.getParameter("mySqlUrl")!=null ? request.getParameter("mySqlUrl").trim() : ""));
278 properties.put((includeMySql?"mysql.":"") + "hibernate.connection.username", (request.getParameter("mySqlUsername")!=null ? request.getParameter("mySqlUsername").trim() : ""));
279 properties.put((includeMySql?"mysql.":"") + "hibernate.connection.password", (request.getParameter("mySqlPassword")!=null ? request.getParameter("mySqlPassword").trim() : ""));
280 properties.put((includeMySql?"mysql.":"") + "hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
281 properties.put((includeMySql?"mysql.":"") + "hibernate.dialect", "net.sf.hibernate.dialect.MySQLDialect");
282 properties.put((includeMySql?"mysql.":"") + "hibernate.c3p0.min_size", "3");
283 properties.put((includeMySql?"mysql.":"") + "hibernate.c3p0.max_size", "20");
284 properties.put((includeMySql?"mysql.":"") + "hibernate.c3p0.timeout", "180");
285 properties.put((includeMySql?"mysql.":"") + "hibernate.connection.autoReconnect", "true");
286 return properties;
287 }
288
289 static public Properties getLdapProperties(PersistenceFactory persistenceFactory, HttpServletRequest request, boolean includeLdap) {
290 Properties properties = new Properties();
291 properties.put((includeLdap?"ldap.":"") + "java.naming.security.authentication", (request.getParameter("ldapAuthentication")!=null ? request.getParameter("ldapAuthentication").trim() : "simple"));
292 properties.put((includeLdap?"ldap.":"") + "java.naming.security.principal", (request.getParameter("ldapPrincipal")!=null ? request.getParameter("ldapPrincipal").trim() : ""));
293 properties.put((includeLdap?"ldap.":"") + "java.naming.security.credentials", (request.getParameter("ldapCredentials")!=null ? request.getParameter("ldapCredentials").trim() : ""));
294 properties.put((includeLdap?"ldap.":"") + "java.naming.provider.url", (request.getParameter("ldapUrl")!=null ? request.getParameter("ldapUrl").trim() : ""));
295 properties.put((includeLdap?"ldap.":"") + "java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
296 return properties;
297 }
298
299 static public String getHostToGroupReferences(Configuration configuration, String g2AMappingName) {
300 String retStr = null;
301 Collection h2GMappings = configuration.getHostToGroupMappings();
302 Iterator it = h2GMappings.iterator();
303 while (it.hasNext()) {
304 HostToGroupMapping h2GMapping = (HostToGroupMapping)it.next();
305 Iterator it2 = h2GMapping.getGroupToAccountMappings().iterator();
306 while (it2.hasNext()) {
307 String thisG2AMapping = (String)it2.next();
308 if (thisG2AMapping.equals(g2AMappingName)) {
309 if (retStr==null)
310 retStr = "";
311 retStr += "\"" + h2GMapping.getName() + "\", ";
312 break;
313 }
314 }
315 }
316 if(retStr!=null)
317 retStr = retStr.substring(0, retStr.length()-2);
318 return retStr;
319 }
320
321 static public String getGroupToAccountMappingReferences(Configuration configuration, String name, String className) {
322 String retStr = null;
323 Collection g2AMappings = configuration.getGroupToAccountMappings().values();
324 Iterator it = g2AMappings.iterator();
325 while (it.hasNext()) {
326 GroupToAccountMapping g2AMapping = (GroupToAccountMapping)it.next();
327 if(className.equals("gov.bnl.gums.account.AccountMapper")) {
328 Iterator it2 = g2AMapping.getAccountMappers().iterator();
329 while (it2.hasNext()) {
330 String thisAccountMapper = (String)it2.next();
331 if (thisAccountMapper.equals(name)) {
332 if (retStr==null)
333 retStr = "";
334 retStr += g2AMapping.getName() + ", ";
335 break;
336 }
337 }
338 }
339 else if(className.equals("gov.bnl.gums.userGroup.UserGroup")) {
340 Iterator it2 = g2AMapping.getUserGroups().iterator();
341 while (it2.hasNext()) {
342 String thisUserGroup = (String)it2.next();
343 if (thisUserGroup.equals(name)) {
344 if (retStr==null)
345 retStr = "";
346 retStr += g2AMapping.getName() + ", ";
347 break;
348 }
349 }
350 }
351 }
352 if(retStr!=null)
353 retStr = retStr.substring(0, retStr.length()-2);
354 return retStr;
355 }
356
357 static public String getVOMSUserGroupReferences(Configuration configuration, String vomsServer) {
358 String retStr = null;
359 Collection userGroups = configuration.getUserGroups().values();
360 Iterator it = userGroups.iterator();
361 while (it.hasNext()) {
362 UserGroup userGroup = (UserGroup)it.next();
363 if ( userGroup instanceof VOMSUserGroup && vomsServer.equals( ((VOMSUserGroup)userGroup).getVomsServer() ) ) {
364 if (retStr==null)
365 retStr = "";
366 retStr += userGroup.getName() + ", ";
367 break;
368 }
369 }
370 if(retStr!=null)
371 retStr = retStr.substring(0, retStr.length()-2);
372 return retStr;
373 }
374
375 static public String getReferencesForPersistenceFactory(Configuration configuration, String persistenceFactory) {
376 String retStr = null;
377 Iterator it;
378
379 it = configuration.getVomsServers().values().iterator();
380 while (it.hasNext()) {
381 VomsServer vomsServer = (VomsServer)it.next();
382 if(vomsServer.getPersistenceFactory().equals(persistenceFactory)) {
383 if (retStr==null)
384 retStr = "";
385 retStr += "VOMS server " + vomsServer.getName() + ", ";
386 }
387 }
388
389 it = configuration.getUserGroups().values().iterator();
390 while (it.hasNext()) {
391 UserGroup userGroup = (UserGroup)it.next();
392 if (userGroup instanceof LDAPUserGroup) {
393 if (((LDAPUserGroup)userGroup).getPersistenceFactory().equals(persistenceFactory)) {
394 if (retStr==null)
395 retStr = "";
396 retStr += "user group " + userGroup.getName() + ", ";
397 }
398 } else if (userGroup instanceof ManualUserGroup) {
399 if (((ManualUserGroup)userGroup).getPersistenceFactory().equals(persistenceFactory)) {
400 if (retStr==null)
401 retStr = "";
402 retStr += "user group " + userGroup.getName() + ", ";
403 }
404 }
405 }
406
407 it = configuration.getAccountMappers().values().iterator();
408 while (it.hasNext()) {
409 AccountMapper accountMapper = (AccountMapper)it.next();
410 if (accountMapper instanceof ManualAccountMapper) {
411 if (((ManualAccountMapper)accountMapper).getPersistenceFactory().equals(persistenceFactory)) {
412 if (retStr==null)
413 retStr = "";
414 retStr += "account mapper " + accountMapper.getName() + ", ";
415 }
416 } else if (accountMapper instanceof AccountPoolMapper) {
417 if (((AccountPoolMapper)accountMapper).getPersistenceFactory().equals(persistenceFactory)) {
418 if (retStr==null)
419 retStr = "";
420 retStr += "account mapper " + accountMapper.getName() + ", ";
421 }
422 }
423 }
424
425 if(retStr!=null)
426 retStr = retStr.substring(0, retStr.length()-2);
427
428 return retStr;
429 }
430
431 static public String createSelectBox(String name, Collection items, String selected, String javascript, boolean includeEmptySlot) {
432 String retStr = "<select name=\""+name+"\" " + (javascript!=null?javascript:"") + ">";
433 if (includeEmptySlot)
434 retStr += "<option " + (selected==null?"selected":"") + "></option>";
435 Iterator it = items.iterator();
436 while(it.hasNext())
437 {
438 String curName = getName(it.next());
439 if (curName.equals(selected))
440 retStr += "<option selected>" + curName + "</option>";
441 else
442 retStr += "<option>" + curName + "</option>";
443 }
444 retStr += "</select> \n";
445 return retStr;
446 }
447
448 static public String createDoSubmit(Collection items, HttpServletRequest request) {
449 String str =
450 "<script language=\"javascript\">"+
451 "String.prototype.trim = function() { return this.replace(/^\\s+|\\s+$/g, \"\"); };"+
452 "document.forms[0].elements['name'].value = document.forms[0].elements['name'].value.trim();"+
453 "function doSubmit(str) {";
454
455 if ("add".equals(request.getParameter("command")) || "add".equals(request.getParameter("originalCommand"))) {
456 str += "if ( document.forms[0].elements['name'].value == '' ){ alert('First field cannot be empty'); return false; }";
457
458 Iterator it = items.iterator();
459 while(it.hasNext())
460 str += "if ( document.forms[0].elements['name'].value == '" + getName(it.next()) + "'){ alert('Name already exists - please choose another name'); return false; }";
461 }
462
463 str +=
464 "document.forms[0].elements['command'].value='save'; return true;"+
465 "return false;"+
466 "}"+
467 "</script>";
468
469 return str;
470 }
471
472 static private String getName(Object obj) {
473 if(obj instanceof String)
474 return (String)obj;
475 else if(obj instanceof CertificateHostToGroupMapping)
476 return ((CertificateHostToGroupMapping)obj).getName();
477 else if(obj instanceof GroupToAccountMapping)
478 return ((GroupToAccountMapping)obj).getName();
479 else if(obj instanceof AccountMapper)
480 return ((AccountMapper)obj).getName();
481 else if(obj instanceof UserGroup)
482 return ((UserGroup)obj).getName();
483 else if(obj instanceof PersistenceFactory)
484 return ((PersistenceFactory)obj).getName();
485 else if(obj instanceof VomsServer)
486 return ((VomsServer)obj).getName();
487 else
488 return "";
489 }
490
491 static public String stripVo(String voGroup) {
492 if(voGroup.length()>0 && voGroup.charAt(0)=='/') {
493 String subStr = voGroup.substring(1);
494 int index = subStr.indexOf("/");
495 if (index!=-1)
496 return subStr.substring(index+1);
497 }
498 return voGroup;
499 }
500
501 static public String stripGroup(String voGroup) {
502 if(voGroup.length()>0 && voGroup.charAt(0)=='/') {
503 String subStr = voGroup.substring(1);
504 int index = subStr.indexOf("/");
505 if (index!=-1)
506 return subStr.substring(0, index);
507 }
508 return voGroup;
509 }
510 }