/*
* Copyright 2014 Eediom Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.araqne.logparser.krsyslog.pnp;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.Map;
import org.araqne.logparser.krsyslog.pnp.DbSaferLogParser;
import org.junit.Test;
/**
* @author kyun
*/
public class DbSaferLogParserTest {
@Test
public void testParserSession() {
String line = "FF000160011000801031908121921680020102970001 20080103190814192.168.2.10 192.168.2.128 015210000000001000000000000000000000000000005scott0004jdbc0014Java_TTC-8.2.00004kyun0006김택현0007오류101EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("100", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190814",m.get("로그인시간"));
assertEquals("192.168.2.10 ",m.get("사용자ip"));
assertEquals("192.168.2.128 ",m.get("dbms서버ip"));
assertEquals("01521", m.get("dbms서버port"));
assertEquals("0000000001", m.get("서비스번호"));
assertEquals("00000000000000000000", m.get("정책번호"));
assertEquals("0", m.get("허용여부"));
assertEquals("0", m.get("alert유무"));
assertEquals("", m.get("alert등급"));
assertEquals("scott", m.get("dbms계정"));
assertEquals("jdbc", m.get("프로그램명"));
assertEquals("Java_TTC-8.2.0", m.get("os정보"));
assertEquals("kyun", m.get("인증id"));
assertEquals("김택현", m.get("인증사용자명"));
assertEquals("오류101", m.get("인증기타정보"));
}
@Test
public void testParserSessionOut() {
String line = "FF000068011100801031908121921680020102970001 2008010319081420080103190819EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("110", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190814", m.get("로그인시간"));
assertEquals("20080103190819", m.get("로그아웃시간"));
}
@Test
public void testParserQuery() {
String line = "FF000090012000801031908121921680020102970001 20080103190814000000000000000000000000000000000000EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("200", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190814", m.get("쿼리실행시간"));
assertEquals("0000000000", m.get("쿼리번호"));
assertEquals("00000000000000000000", m.get("정책번호"));
assertEquals("0", m.get("허용여부"));
assertEquals("0", m.get("alert유무"));
assertEquals("", m.get("alert등급"));
}
@Test
public void testParserQueryString() {
String line = "FF000087012100801031908121921680020102970001 20080103190816000000000100018SELECT * FROM DUALEE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("210", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190816", m.get("쿼리실행시간"));
assertEquals("0000000001", m.get("쿼리번호"));
assertEquals("SELECT * FROM DUAL", m.get("쿼리"));
}
@Test
public void testParserQueryRtnStr() {
String line = "FF000085012300801031908121921680020102970001 20080103190816000000000100016Return CompletedEE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("230", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190816", m.get("쿼리실행시간"));
assertEquals("0000000001", m.get("쿼리번호"));
assertEquals("Return Completed", m.get("결과메시지"));
}
@Test
public void testParserQueryRtn() {
String line = "FF000100012200801031908121921680020102970001 200801031908162008010319081600000000010000000000000000000080EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("01", m.get("버전"));
assertEquals("220", m.get("레코드종류"));
assertEquals("0801031908121921680020102970001 ", m.get("세션키"));
assertEquals("20080103190816", m.get("쿼리실행시간"));
assertEquals("20080103190816", m.get("쿼리종료시간"));
assertEquals("0000000001", m.get("쿼리번호"));
assertEquals("00000000000", m.get("수행시간"));
assertEquals("00000000080", m.get("응답크기"));
}
@Test
public void testParserMngLog() {
String line = "FF000172029001321342695490896019 1321342695262328010 20111115163815admin"
+ " 192.168.3.17 0034로그인. IP[192.168.3.17] ID[admin]1EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("02", m.get("버전"));
assertEquals("900", m.get("레코드종류"));
assertEquals("1321342695490896019 ", m.get("키"));
assertEquals("1321342695262328010 ", m.get("세션키"));
assertEquals("20111115163815", m.get("로그발생시간"));
assertEquals("admin ", m.get("관리자계정"));
assertEquals("192.168.3.17 ", m.get("접속ip"));
assertEquals("로그인. IP[192.168.3.17] ID[admin]", m.get("내용설명"));
assertEquals("1", m.get("성공실패여부"));
}
@Test
public void testParserSysLog() {
String line = "FF00006002901201111151637550034관리자 비밀번호를 초기화 했습니다.EE\n";
DbSaferLogParser parser = new DbSaferLogParser();
Map<String, Object> m = parser.parse(line(line));
assertEquals("02", m.get("버전"));
assertEquals("901", m.get("레코드종류"));
assertEquals("20111115163755", m.get("로그발생시간"));
assertEquals("관리자 비밀번호를 초기화 했습니다.", m.get("상세내용"));
}
private Map<String, Object> line(String line) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("line", line);
return m;
}
}