public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final boolean wasReadOnly = auditLogger.isLogReadOnly(); final AuditLogger.Status oldStatus = auditLogger.getLoggerStatus(); auditLogger.setLoggerStatus(AuditLogger.Status.DISABLE_NEXT); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { auditLogger.setLogReadOnly(wasReadOnly); auditLogger.setLoggerStatus(oldStatus); } }); } }, OperationContext.Stage.RUNTIME);
@Override protected void rollbackRuntime(OperationContext context, ModelNode operation, Resource resource) { auditLogger.getUpdater().rollbackChanges(); } }
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, Object handback) throws OperationFailedException { if (attributeName.equals(LOG_BOOT.getName())) { auditLogger.setLogBoot((Boolean)handback); } else if (attributeName.equals(ENABLED.getName())) { auditLogger.setLoggerStatus((ManagedAuditLogger.Status)handback); } else if (attributeName.equals(LOG_READ_ONLY.getName())){ auditLogger.setLogReadOnly((Boolean)handback); } } }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<ManagedAuditLogger.Status> handbackHolder) throws OperationFailedException { handbackHolder.setHandback(auditLogger.getLoggerStatus()); boolean enabled = resolvedValue.asBoolean(); ManagedAuditLogger.Status status = enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLE_NEXT; auditLogger.setLoggerStatus(status); return false; }
public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final boolean wasReadOnly = auditLoggerProvider.isLogReadOnly(); final boolean wasLogBoot = auditLoggerProvider.isLogBoot(); final AuditLogger.Status oldStatus = auditLoggerProvider.getLoggerStatus(); auditLoggerProvider.setLogReadOnly(JmxAuditLoggerResourceDefinition.LOG_READ_ONLY.resolveModelAttribute(context, model).asBoolean()); auditLoggerProvider.setLogBoot(JmxAuditLoggerResourceDefinition.LOG_BOOT.resolveModelAttribute(context, model).asBoolean()); boolean enabled = JmxAuditLoggerResourceDefinition.ENABLED.resolveModelAttribute(context, model).asBoolean(); auditLoggerProvider.setLoggerStatus(enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLED); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { auditLoggerProvider.setLogReadOnly(wasReadOnly); auditLoggerProvider.setLoggerStatus(oldStatus); auditLoggerProvider.setLogBoot(wasLogBoot); } }); } }, OperationContext.Stage.RUNTIME);
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final boolean wasReadOnly = auditLoggerProvider.isLogReadOnly(); auditLoggerProvider.setLogBoot(AuditLogLoggerResourceDefinition.LOG_BOOT.resolveModelAttribute(context, model).asBoolean()); auditLoggerProvider.setLogReadOnly(AuditLogLoggerResourceDefinition.LOG_READ_ONLY.resolveModelAttribute(context, model).asBoolean()); boolean enabled = AuditLogLoggerResourceDefinition.ENABLED.resolveModelAttribute(context, model).asBoolean(); final AuditLogger.Status status = enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLED; context.completeStep((OperationContext.ResultAction resultAction, OperationContext context1, ModelNode operation1) -> { if(resultAction == OperationContext.ResultAction.KEEP) { auditLoggerProvider.setLoggerStatus(status); } else { auditLoggerProvider.setLogReadOnly(wasReadOnly); } }); } }, OperationContext.Stage.RUNTIME);
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<Void> handbackHolder) throws OperationFailedException { if (super.handleApplyAttributeRuntime(context, operation, attributeName, resolvedValue, currentValue, handbackHolder)) { return false; } if (attributeName.equals(APP_NAME.getName())) { auditLogger.updateSyslogHandlerAppName(Util.getNameFromAddress(operation.require(OP_ADDR)), resolveAppName(context, operation.get(VALUE), environmentReader)); } else if (attributeName.equals(FACILITY.getName())) { auditLogger.updateSyslogHandlerFacility(Util.getNameFromAddress(operation.require(OP_ADDR)), Facility.valueOf(resolvedValue.asString())); } else if (attributeName.equals(RECONNECT_TIMEOUT)) { PathAddress addr = PathAddress.pathAddress(operation.require(OP_ADDR)); addr = addr.subAddress(0, addr.size() - 1); auditLogger.updateSyslogHandlerReconnectTimeout(Util.getNameFromAddress(addr), resolvedValue.asInt()); } else { auditLogger.getUpdater().updateHandler(createHandler(pathManager, context, environmentReader)); } return false; }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<Boolean> handbackHolder) throws OperationFailedException { handbackHolder.setHandback(auditLogger.isLogReadOnly()); auditLogger.setLogReadOnly(resolvedValue.asBoolean()); return false; }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { InMemoryAuditLogHander handler = createHandler(context, operation); auditLogger.getUpdater().addHandler(handler); auditLogger.addFormatter(handler.getFormatter()); }
void finishBoot() { // Notify the audit logger that we're done booting auditLogger.bootDone(); bootingFlag.set(false); }
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, Boolean handback) throws OperationFailedException { auditLogger.setLogReadOnly(handback); } }
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, ManagedAuditLogger.Status handback) throws OperationFailedException { auditLogger.setLoggerStatus(handback); } }
/** * This method is only for internal use. We do NOT currently want to expose it on the ExtensionContext interface. */ public AuditLogger getAuditLogger(boolean inheritConfiguration, boolean manualCommit) { if (inheritConfiguration) { return auditLogger; } return auditLogger.createNewConfiguration(manualCommit); }
static void doLog(String userId, ManagedAuditLogger auditLogger, boolean readOnly, Throwable error, String methodName, String[] methodSignature, Object...methodParams) { if (auditLogger != null) { AccessAuditContext auditContext = SecurityActions.currentAccessAuditContext(); auditLogger.logJmxMethodAccess( readOnly, userId, auditContext == null ? null : auditContext.getDomainUuid(), auditContext == null ? null : auditContext.getAccessMechanism(), auditContext == null ? null : auditContext.getRemoteAddress(), methodName, methodSignature, methodParams, error); } } }
public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final boolean wasReadOnly = auditLoggerProvider.isLogReadOnly(); final boolean wasLogBoot = auditLoggerProvider.isLogBoot(); final AuditLogger.Status oldStatus = auditLoggerProvider.getLoggerStatus(); auditLoggerProvider.setLogReadOnly(JmxAuditLoggerResourceDefinition.LOG_READ_ONLY.resolveModelAttribute(context, model).asBoolean()); auditLoggerProvider.setLogBoot(JmxAuditLoggerResourceDefinition.LOG_BOOT.resolveModelAttribute(context, model).asBoolean()); boolean enabled = JmxAuditLoggerResourceDefinition.ENABLED.resolveModelAttribute(context, model).asBoolean(); auditLoggerProvider.setLoggerStatus(enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLED); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { auditLoggerProvider.setLogReadOnly(wasReadOnly); auditLoggerProvider.setLoggerStatus(oldStatus); auditLoggerProvider.setLogBoot(wasLogBoot); } }); } }, OperationContext.Stage.RUNTIME);
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final boolean wasReadOnly = auditLoggerProvider.isLogReadOnly(); auditLoggerProvider.setLogBoot(AuditLogLoggerResourceDefinition.LOG_BOOT.resolveModelAttribute(context, model).asBoolean()); auditLoggerProvider.setLogReadOnly(AuditLogLoggerResourceDefinition.LOG_READ_ONLY.resolveModelAttribute(context, model).asBoolean()); boolean enabled = AuditLogLoggerResourceDefinition.ENABLED.resolveModelAttribute(context, model).asBoolean(); final AuditLogger.Status status = enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLED; context.completeStep((OperationContext.ResultAction resultAction, OperationContext context1, ModelNode operation1) -> { if(resultAction == OperationContext.ResultAction.KEEP) { auditLoggerProvider.setLoggerStatus(status); } else { auditLoggerProvider.setLogReadOnly(wasReadOnly); } }); } }, OperationContext.Stage.RUNTIME);
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, Void handback) throws OperationFailedException { if (super.handlerRevertUpdateToRuntime(context, operation, attributeName, valueToRestore, valueToRevert, handback)) { return; } if (attributeName.equals(APP_NAME.getName())) { auditLogger.updateSyslogHandlerAppName(Util.getNameFromAddress(operation.require(OP_ADDR)), resolveAppName(context, valueToRestore, environmentReader)); } else if (attributeName.equals(FACILITY.getName())) { auditLogger.updateSyslogHandlerFacility(Util.getNameFromAddress(operation.require(OP_ADDR)), Facility.valueOf(valueToRestore.asString())); } else if (attributeName.equals(RECONNECT_TIMEOUT)) { PathAddress addr = PathAddress.pathAddress(operation.require(OP_ADDR)); addr = addr.subAddress(0, addr.size() - 1); auditLogger.updateSyslogHandlerReconnectTimeout(Util.getNameFromAddress(addr), valueToRestore.asInt()); } else { auditLogger.getUpdater().rollbackChanges(); } } }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<ManagedAuditLogger.Status> handbackHolder) throws OperationFailedException { handbackHolder.setHandback(auditLogger.getLoggerStatus()); boolean enabled = resolvedValue.asBoolean(); ManagedAuditLogger.Status status = enabled ? AuditLogger.Status.LOGGING : AuditLogger.Status.DISABLE_NEXT; auditLogger.setLoggerStatus(status); return false; }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<Boolean> handbackHolder) throws OperationFailedException { handbackHolder.setHandback(auditLogger.isLogReadOnly()); auditLogger.setLogReadOnly(resolvedValue.asBoolean()); return false; }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { InMemoryAuditLogHander handler = createHandler(context, operation); auditLogger.getUpdater().addHandler(handler); auditLogger.addFormatter(handler.getFormatter()); }