/* * oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text. * * Copyright (c) 2014, Gluu */ package org.xdi.oxauth.service; import java.util.List; 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.appliance.GluuAppliance; import org.xdi.oxauth.model.config.StaticConfiguration; import org.xdi.oxauth.model.configuration.AppConfiguration; import org.xdi.util.StringHelper; /** * GluuAppliance service * * @author Reda Zerrad Date: 08.10.2012 */ @Stateless @Named public class ApplianceService { @Inject private Logger log; @Inject private LdapEntryManager ldapEntryManager; @Inject private AppConfiguration appConfiguration; @Inject private StaticConfiguration staticConfiguration; /** * Add new appliance * @param appliance Appliance */ public void addAppliance(GluuAppliance appliance) { ldapEntryManager.persist(appliance); } /** * Update appliance entry * @param appliance GluuAppliance */ public void updateAppliance(GluuAppliance appliance) { ldapEntryManager.merge(appliance); } /** * Check if LDAP server contains appliance with specified attributes * @return True if appliance with specified attributes exist */ public boolean containsAppliance(GluuAppliance appliance) { return ldapEntryManager.contains(appliance); } /** * Get appliance by inum * @param inum Appliance Inum * @return Appliance * @throws Exception */ public GluuAppliance getApplianceByInum(String inum) { return ldapEntryManager.find(GluuAppliance.class, getDnForAppliance(inum)); } /** * Get appliance * @return Appliance * @throws Exception */ public GluuAppliance getAppliance() { String applianceInum = getApplianceInum(); if (StringHelper.isEmpty(applianceInum)) { return null; } return ldapEntryManager.find(GluuAppliance.class, getDnForAppliance(getApplianceInum())); } /** * Get all appliances * @return List of attributes * @throws Exception */ public List<GluuAppliance> getAppliances() { List<GluuAppliance> applianceList = ldapEntryManager.findEntries(getDnForAppliance(null), GluuAppliance.class, null); return applianceList; } /** * Build DN string for appliance * @param inum Inum * @return DN string for specified appliance or DN for appliances branch if inum is null * @throws Exception */ public String getDnForAppliance(String inum) { String baseDn = staticConfiguration.getBaseDn().getAppliance(); if (StringHelper.isEmpty(inum)) { return baseDn; } return String.format("inum=%s,%s", inum, baseDn); } /** * Build DN string for appliance * @return DN string for appliance * @throws Exception */ public String getDnForAppliance() { return getDnForAppliance(getApplianceInum()); } public String getApplianceInum() { return appConfiguration.getApplianceInum(); } }