/** * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.glite.security.voms.admin.service; import java.rmi.RemoteException; import java.util.List; import org.glite.security.voms.VOMSException; import org.glite.security.voms.admin.configuration.VOMSConfiguration; import org.glite.security.voms.admin.operations.groups.ListMemberNamesOperation; import org.glite.security.voms.admin.persistence.error.NoSuchGroupException; import org.glite.security.voms.admin.persistence.error.NoSuchRoleException; import org.glite.security.voms.service.compatibility.VOMSCompatibility; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class VomsCompatibilityService implements VOMSCompatibility { private static final Logger log = LoggerFactory .getLogger(VomsCompatibilityService.class); public int getMajorVersionNumber() throws RemoteException { // TODO Auto-generated method stub return 2; } public int getMinorVersionNumber() throws RemoteException { // TODO Auto-generated method stub return 0; } public int getPatchVersionNumber() throws RemoteException { // TODO Auto-generated method stub return 0; } public String[] getGridmapUsers() throws RemoteException, VOMSException { log.info("getGridmapUsers();"); try { String voName = VOMSConfiguration.instance().getVOName(); List<String> members = (List<String>) ListMemberNamesOperation .instance("/" + voName) .execute(); if (VOMSConfiguration.instance().getBoolean( "voms.mkgridmap.translate_dn_email_format", false)) members = ServiceUtils.decorateDNList((List<String>) members); return ServiceUtils.toStringArray(members); } catch (RuntimeException e) { ServiceExceptionHelper.handleServiceException(log, e); throw e; } } public String[] getGridmapUsers(String container) throws RemoteException, VOMSException { log.info("getGridmapUsers(" + container + ");"); try { List members = (List) ListMemberNamesOperation.instance(container) .execute(); if (VOMSConfiguration.instance().getBoolean( "voms.mkgridmap.translate_dn_email_format", false)) members = ServiceUtils.decorateDNList((List<String>) members); return ServiceUtils.toStringArray(members); } catch (NoSuchRoleException e) { log.warn("Role '{}' is not defined for this VO.", container); return null; } catch (NoSuchGroupException e) { log.warn("Group '{}' is not defined for this VO.", container); return null; } catch (RuntimeException e) { ServiceExceptionHelper.handleServiceException(log, e); throw e; } } }