package org.xdi.oxauth.service; import javax.ejb.Stateless; import javax.inject.Inject; import javax.inject.Named; import org.gluu.site.ldap.persistence.LdapEntryManager; import org.slf4j.Logger; import org.xdi.oxauth.model.config.StaticConfiguration; import org.xdi.oxauth.model.ldap.SectorIdentifier; import org.xdi.util.StringHelper; /** * @author Javier Rojas Blum * @version January 15, 2016 */ @Stateless @Named public class SectorIdentifierService { @Inject private Logger log; @Inject private LdapEntryManager ldapEntryManager; @Inject private StaticConfiguration staticConfiguration; /** * Get sector identifier by inum * * @param inum Sector identifier inum * @return Sector identifier */ public SectorIdentifier getSectorIdentifierByInum(String inum) { SectorIdentifier result = null; try { result = ldapEntryManager.find(SectorIdentifier.class, getDnForSectorIdentifier(inum)); } catch (Exception e) { log.error("Failed to find sector identifier by Inum " + inum, e); } return result; } /** * Build DN string for sector identifier * * @param inum Sector Identifier Inum * @return DN string for specified sector identifier or DN for sector identifiers branch if inum is null * @throws Exception */ public String getDnForSectorIdentifier(String inum) { String sectorIdentifierDn = staticConfiguration.getBaseDn().getSectorIdentifiers(); if (StringHelper.isEmpty(inum)) { return sectorIdentifierDn; } return String.format("inum=%s,%s", inum, sectorIdentifierDn); } }