@Override public String convert(IAccessEvent accessEvent) { return accessEvent.getRemoteHost(); }
/** * Verifies that the remote host is equal to the given one. * * @param remoteHost the remote host. * @return this instance. * @see IAccessEvent#getRemoteHost() */ public S hasRemoteHost(String remoteHost) { String actualRemoteHost = actual.getRemoteHost(); Assertions.assertThat(actualRemoteHost).isEqualTo(remoteHost); return myself; }
@Override public void writeTo(JsonGenerator generator, IAccessEvent event) throws IOException { JsonWritingUtils.writeStringField(generator, getFieldName(), event.getRemoteHost()); }
void addAccessEvent(PreparedStatement stmt, IAccessEvent event) throws SQLException { stmt.setLong(1, event.getTimeStamp()); stmt.setString(2, event.getRequestURI()); stmt.setString(3, event.getRequestURL()); stmt.setString(4, event.getRemoteHost()); stmt.setString(5, event.getRemoteUser()); stmt.setString(6, event.getRemoteAddr()); stmt.setString(7, event.getProtocol()); stmt.setString(8, event.getMethod()); stmt.setString(9, event.getServerName()); stmt.setString(10, event.getRequestContent()); }
@Override public void writeTo(JsonGenerator generator, IAccessEvent event) throws IOException { JsonWritingUtils.writeStringField(generator, getFieldName(), String.format("%s - %s [%s] \"%s\" %s %s", event.getRemoteHost(), event.getRemoteUser() == null ? "-" : event.getRemoteUser(), getFormattedTimestamp(event), event.getRequestURL(), event.getStatusCode(), event.getContentLength())); }
@Test public void eventGoesToAppenders() throws Exception { URL url = new URL(JETTY_FIXTURE.getUrl()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); String result = Util.readToString(connection.getInputStream()); assertEquals("hello world", result); NotifyingListAppender listAppender = (NotifyingListAppender) REQUEST_LOG_IMPL.getAppender("list"); IAccessEvent event = listAppender.list.poll(TIMEOUT, TimeUnit.SECONDS); assertNotNull("No events received", event); assertEquals("127.0.0.1", event.getRemoteHost()); assertEquals("localhost", event.getServerName()); listAppender.list.clear(); }
@Test public void testAppendAccessEvent() throws SQLException { setInsertHeadersAndStart(false); IAccessEvent event = createAccessEvent(); appender.append(event); Statement stmt = connectionSource.getConnection().createStatement(); ResultSet rs = null; rs = stmt.executeQuery("SELECT * FROM access_event where EVENT_ID = " + existingEventTableRowCount); if (rs.next()) { assertEquals(event.getTimeStamp(), rs.getLong(1)); assertEquals(event.getRequestURI(), rs.getString(2)); assertEquals(event.getRequestURL(), rs.getString(3)); assertEquals(event.getRemoteHost(), rs.getString(4)); assertEquals(event.getRemoteUser(), rs.getString(5)); assertEquals(event.getRemoteAddr(), rs.getString(6)); assertEquals(event.getProtocol(), rs.getString(7)); assertEquals(event.getMethod(), rs.getString(8)); assertEquals(event.getServerName(), rs.getString(9)); assertEquals(event.getRequestContent(), rs.getString(10)); } else { fail("No row was inserted in the database"); } rs.close(); stmt.close(); }