private void reconfigure(AuditLoggerDeviceExtension from) { loggers.keySet().retainAll(from.loggers.keySet()); for (AuditLogger src : from.loggers.values()) { AuditLogger logger = loggers.get(src.getApplicationName()); if (logger == null) addAuditLogger(logger = new AuditLogger(src.getCommonName())); logger.reconfigure(src); } }
@Override public void reconfigure(DeviceExtension from) { reconfigure((AuditLoggerDeviceExtension) from); }
public void setCommonName(String commonName) { if (commonName.isEmpty()) throw new IllegalArgumentException("name cannot be empty"); AuditLoggerDeviceExtension ext = device != null ? device.getDeviceExtension(AuditLoggerDeviceExtension.class) : null; if (ext != null) ext.removeAuditLogger(this.commonName); this.commonName = commonName; if (ext != null) ext.addAuditLogger(this); }
@Override protected void loadChilds(Device device, String deviceDN) throws NamingException { NamingEnumeration<SearchResult> ne = config.search(deviceDN, "(objectclass=dcmAuditLogger)"); try { if (!ne.hasMore()) return; AuditLoggerDeviceExtension ext = new AuditLoggerDeviceExtension(); device.addDeviceExtension(ext); do { ext.addAuditLogger( loadAuditLogger(ne.next(), deviceDN, device)); } while (ne.hasMore()); } finally { LdapUtils.safeClose(ne); } }
@Override protected void mergeChilds(ConfigurationChanges diffs, Device prev, Device device, String deviceDN) throws NamingException { AuditLoggerDeviceExtension prevAuditLoggerExt = prev.getDeviceExtension(AuditLoggerDeviceExtension.class); AuditLoggerDeviceExtension auditLoggerExt = device.getDeviceExtension(AuditLoggerDeviceExtension.class); if (prevAuditLoggerExt != null) for (String appName : prevAuditLoggerExt.getAuditLoggerNames()) { if (auditLoggerExt == null || !auditLoggerExt.containsAuditLogger(appName)) { String dn = auditLoggerDN(appName, deviceDN); config.destroySubcontextWithChilds(dn); ConfigurationChanges.addModifiedObject(diffs, dn, ConfigurationChanges.ChangeType.D); } } if (auditLoggerExt == null) return; for (AuditLogger logger : auditLoggerExt.getAuditLoggers()) { String appName = logger.getCommonName(); if (prevAuditLoggerExt == null || !prevAuditLoggerExt.containsAuditLogger(appName)) { store(diffs, deviceDN, logger); } else merge(diffs, prevAuditLoggerExt.getAuditLogger(appName), logger, deviceDN); } }
@Override protected void storeChilds(ConfigurationChanges diffs, String deviceDN, Device device) throws NamingException { AuditLoggerDeviceExtension auditLoggerExt = device.getDeviceExtension(AuditLoggerDeviceExtension.class); if (auditLoggerExt == null) return; for (AuditLogger auditLogger : auditLoggerExt.getAuditLoggers()) store(diffs, deviceDN, auditLogger); }
@Override public boolean loadDeviceExtension(Device device, JsonReader reader, ConfigurationDelegate config) throws ConfigurationException { if (!reader.getString().equals("dcmAuditLogger")) return false; AuditLoggerDeviceExtension ext = new AuditLoggerDeviceExtension(); loadFrom(ext, reader, device.listConnections(), config); device.addDeviceExtension(ext); return true; }
@Override protected void loadChilds(Device device, String deviceDN) throws NamingException { NamingEnumeration<SearchResult> ne = config.search(deviceDN, "(objectclass=dcmAuditLogger)"); try { if (!ne.hasMore()) return; AuditLoggerDeviceExtension ext = new AuditLoggerDeviceExtension(); device.addDeviceExtension(ext); do { ext.addAuditLogger( loadAuditLogger(ne.next(), deviceDN, device)); } while (ne.hasMore()); } finally { LdapUtils.safeClose(ne); } }
@Override protected void mergeChilds(ConfigurationChanges diffs, Device prev, Device device, String deviceDN) throws NamingException { AuditLoggerDeviceExtension prevAuditLoggerExt = prev.getDeviceExtension(AuditLoggerDeviceExtension.class); AuditLoggerDeviceExtension auditLoggerExt = device.getDeviceExtension(AuditLoggerDeviceExtension.class); if (prevAuditLoggerExt != null) for (String appName : prevAuditLoggerExt.getAuditLoggerNames()) { if (auditLoggerExt == null || !auditLoggerExt.containsAuditLogger(appName)) { String dn = auditLoggerDN(appName, deviceDN); config.destroySubcontextWithChilds(dn); ConfigurationChanges.addModifiedObject(diffs, dn, ConfigurationChanges.ChangeType.D); } } if (auditLoggerExt == null) return; for (AuditLogger logger : auditLoggerExt.getAuditLoggers()) { String appName = logger.getCommonName(); if (prevAuditLoggerExt == null || !prevAuditLoggerExt.containsAuditLogger(appName)) { store(diffs, deviceDN, logger); } else merge(diffs, prevAuditLoggerExt.getAuditLogger(appName), logger, deviceDN); } }
@Override protected void storeChilds(ConfigurationChanges diffs, String deviceDN, Device device) throws NamingException { AuditLoggerDeviceExtension auditLoggerExt = device.getDeviceExtension(AuditLoggerDeviceExtension.class); if (auditLoggerExt == null) return; for (AuditLogger auditLogger : auditLoggerExt.getAuditLoggers()) store(diffs, deviceDN, auditLogger); }
public void setCommonName(String commonName) { if (commonName.isEmpty()) throw new IllegalArgumentException("name cannot be empty"); AuditLoggerDeviceExtension ext = device != null ? device.getDeviceExtension(AuditLoggerDeviceExtension.class) : null; if (ext != null) ext.removeAuditLogger(this.commonName); this.commonName = commonName; if (ext != null) ext.addAuditLogger(this); }
@Override public boolean loadDeviceExtension(Device device, JsonReader reader, ConfigurationDelegate config) throws ConfigurationException { if (!reader.getString().equals("dcmAuditLogger")) return false; AuditLoggerDeviceExtension ext = new AuditLoggerDeviceExtension(); loadFrom(ext, reader, device.listConnections(), config); device.addDeviceExtension(ext); return true; }
private void reconfigure(AuditLoggerDeviceExtension from) { loggers.keySet().retainAll(from.loggers.keySet()); for (AuditLogger src : from.loggers.values()) { AuditLogger logger = loggers.get(src.getApplicationName()); if (logger == null) addAuditLogger(logger = new AuditLogger(src.getCommonName())); logger.reconfigure(src); } }
public Collection<AuditLogger> getAuditLoggers() throws ConfigurationException { Device device = this.device; if (device == null) { device = findDevice(); this.device = device; } AuditLoggerDeviceExtension ext = findDevice().getDeviceExtension(AuditLoggerDeviceExtension.class); return ext != null ? ext.getAuditLoggers() : null; }
@Override public void reconfigure(DeviceExtension from) { reconfigure((AuditLoggerDeviceExtension) from); }
public Syslog() throws IOException { logDevice.addDeviceExtension(auditLoggerExt); logDevice.addConnection(conn); arrDevice.addDeviceExtension(arr); arrDevice.addConnection(remote); auditLogger.setAuditRecordRepositoryDevice(arrDevice); auditLoggerExt.addAuditLogger(auditLogger); }
public Collection<AuditLogger> getAuditLoggers() throws ConfigurationException { Device device = this.device; if (device == null) { device = findDevice(); this.device = device; } AuditLoggerDeviceExtension ext = findDevice().getDeviceExtension(AuditLoggerDeviceExtension.class); return ext != null ? ext.getAuditLoggers() : null; }
public Syslog() throws IOException { logDevice.addDeviceExtension(auditLoggerExt); logDevice.addConnection(conn); arrDevice.addDeviceExtension(arr); arrDevice.addConnection(remote); auditLogger.setAuditRecordRepositoryDevice(arrDevice); auditLoggerExt.addAuditLogger(auditLogger); }
@Override protected void storeTo(Device device, JsonWriter writer) { AuditLoggerDeviceExtension ext = device.getDeviceExtension(AuditLoggerDeviceExtension.class); if (ext == null) return; writer.writeStartArray("dcmAuditLogger"); for (AuditLogger logger : ext.getAuditLoggers()) writeTo(device, logger, writer); writer.writeEnd(); }
private void loadFrom(AuditLoggerDeviceExtension ext, JsonReader reader, List<Connection> conns, ConfigurationDelegate config) throws ConfigurationException { reader.next(); reader.expect(JsonParser.Event.START_ARRAY); while (reader.next() == JsonParser.Event.START_OBJECT) { AuditLogger logger = new AuditLogger(); loadFrom(logger, reader, conns, config); reader.expect(JsonParser.Event.END_OBJECT); ext.addAuditLogger(logger); } reader.expect(JsonParser.Event.END_ARRAY); }