package org.safehaus.penrose.log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.safehaus.penrose.ldap.*;
import org.safehaus.penrose.ldap.LDAP;
import org.safehaus.penrose.session.Session;
import org.safehaus.penrose.operation.SearchOperation;
import org.safehaus.penrose.filter.Filter;
import java.util.Collection;
/**
* @author Endi Sukma Dewata
*/
public class Access {
public static Logger log = LoggerFactory.getLogger(Access.class);
public static void log(Session session, ConnectRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("CONNECT session=\"");
sb.append(session.getSessionName());
sb.append("\"");
if (request.getClientAddress() != null) {
sb.append(" from=\"");
sb.append(request.getClientAddress());
sb.append("\"");
}
if (request.getServerAddress() != null) {
sb.append(" to=\"");
sb.append(request.getServerAddress());
sb.append("\"");
}
if (request.getProtocol() != null) {
sb.append(" protocol=\"");
sb.append(request.getProtocol());
sb.append("\"");
}
log.warn(sb.toString());
}
}
public static void log(Session session, DisconnectRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("DISCONNECT session=\"");
sb.append(session.getSessionName());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, AbandonRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("ABANDON session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" operationToAbandon=\"");
sb.append(request.getOperationName());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, AbandonResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("ABANDON session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, AddRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("ADD session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, AddResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("ADD session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, BindRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("BIND session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, BindResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("BIND session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
if (response.getReturnCode() == LDAP.SUCCESS && session.getBindDn() != null) {
sb.append(" authDn=\"");
sb.append(session.getBindDn());
sb.append("\"");
}
log.warn(sb.toString());
}
}
public static void log(Session session, CompareRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("COMPARE session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\" attr=\"");
sb.append(request.getAttributeName());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, CompareResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("COMPARE session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, DeleteRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("DELETE session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, DeleteResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("DELETE session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, ModifyRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("MODIFY session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, ModifyResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("MODIFY session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, ModRdnRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("MODRDN session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" dn=\"");
sb.append(request.getDn());
sb.append("\" newRdn=\"");
sb.append(request.getNewRdn());
sb.append("\" deleteOldRdn=\"");
sb.append(request.getDeleteOldRdn());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, ModRdnResponse response) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("MODRDN session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(SearchOperation operation) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("SEARCH session=\"");
sb.append(operation.getSessionName());
sb.append("\" operation=\"");
sb.append(operation.getOperationName());
sb.append("\" base=\"");
sb.append(operation.getDn());
sb.append("\" scope=\"");
sb.append(LDAP.getScope(operation.getScope()));
sb.append("\" filter=\"");
Filter filter = operation.getFilter();
sb.append(filter == null ? "(objectClass=*)" : filter.toString());
sb.append("\"");
Collection<String> attributes = operation.getAttributes();
if (!attributes.isEmpty()) {
sb.append(" attrs=\"");
boolean first = true;
for (String attribute : attributes) {
if (first) {
first = false;
} else {
sb.append(",");
}
sb.append(attribute);
}
sb.append("\"");
}
log.warn(sb.toString());
}
}
public static void log(SearchOperation searchOperation, long elapsedTime) {
boolean warn = log.isWarnEnabled();
if (warn) {
SearchResponse response = searchOperation.getSearchResponse();
StringBuilder sb = new StringBuilder();
sb.append("SEARCH session=\"");
sb.append(searchOperation.getSessionName());
sb.append("\" operation=\"");
sb.append(searchOperation.getOperationName());
sb.append("\" result=\"");
sb.append(response.getErrorMessage());
sb.append("\" entries=\"");
sb.append(response.getTotalCount());
sb.append("\" time=\"");
sb.append(elapsedTime);
sb.append("\"");
log.warn(sb.toString());
}
}
public static void log(Session session, UnbindRequest request) {
boolean warn = log.isWarnEnabled();
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("UNBIND session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = request.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
log.warn(sb.toString());
}
}
public static void log(Session session, UnbindResponse response) {
/*
if (warn) {
StringBuilder sb = new StringBuilder();
sb.append("UNBIND session=\"");
sb.append(session.getSessionName());
sb.append("\"");
Integer messageId = response.getMessageId();
if (messageId != null) {
sb.append(" operation=\"");
sb.append(messageId);
sb.append("\"");
}
sb.append(" result=\"");
sb.append(response.getErrorMessage());
sb.append("\"");
log.warn(sb.toString());
}
*/
}
}