package org.orienteer.logger.server;
import org.apache.wicket.protocol.http.request.WebClientInfo;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.http.WebRequest;
import org.orienteer.core.OrienteerWebSession;
import org.orienteer.logger.IOLoggerEventEnhancer;
import org.orienteer.logger.OLoggerEvent;
/**
* {@link IOLoggerEventEnhancer} to add some web specific to an event
*/
public class OWebEnhancer implements IOLoggerEventEnhancer {
@Override
public OLoggerEvent enhance(OLoggerEvent event) {
RequestCycle cycle = RequestCycle.get();
if(cycle!=null) {
OrienteerWebSession session = OrienteerWebSession.get();
if(session!=null) {
if(session.isClientInfoAvailable()){
WebClientInfo clientInfo = session.getClientInfo();
event.setMetaData("remoteAddress", clientInfo.getProperties().getRemoteAddress());
event.setMetaData("hostName", clientInfo.getProperties().getHostname());
}
if(session.isSignedIn()) {
event.setMetaData("username", session.getUser().getName());
}
}
WebRequest request = (WebRequest)cycle.getRequest();
event.setMetaData("clientUrl", request.getClientUrl());
}
return event;
}
}