37 changed files with 415 additions and 305 deletions
@ -1,17 +0,0 @@ |
|||
package io.sc.platform.core.audit; |
|||
|
|||
/** |
|||
* 审计日志分类常量 |
|||
*/ |
|||
public class AuditLogAction { |
|||
public static final String ADD ="io.sc.platform.core.audit.AuditLogAction.ADD"; |
|||
public static final String REMOVE ="io.sc.platform.core.audit.AuditLogAction.REMOVE"; |
|||
public static final String UPDATE ="io.sc.platform.core.audit.AuditLogAction.UPDATE"; |
|||
public static final String QUERY ="io.sc.platform.core.audit.AuditLogAction.QUERY"; |
|||
public static final String FIND_ONE ="io.sc.platform.core.audit.AuditLogAction.FIND_ONE"; |
|||
public static final String EXPORT ="io.sc.platform.core.audit.AuditLogAction.EXPORT"; |
|||
public static final String LOGIN ="io.sc.platform.core.audit.AuditLogAction.LOGIN"; |
|||
public static final String LOGOUT ="io.sc.platform.core.audit.AuditLogAction.LOGOUT"; |
|||
|
|||
private AuditLogAction(){} |
|||
} |
@ -0,0 +1,23 @@ |
|||
package io.sc.platform.core.enums; |
|||
|
|||
public enum AuditLogAction { |
|||
UNKNOWN("UNKNOWN"), |
|||
ADD("ADD"), |
|||
REMOVE("REMOVE"), |
|||
UPDATE("UPDATE"), |
|||
QUERY("QUERY"), |
|||
FIND_ONE("FIND_ONE"), |
|||
EXPORT("EXPORT"), |
|||
LOGIN("LOGIN"), |
|||
LOGOUT("LOGOUT"); |
|||
|
|||
private final String value; |
|||
|
|||
private AuditLogAction(String value){ |
|||
this.value =value; |
|||
} |
|||
|
|||
public String getValue(){ |
|||
return this.value; |
|||
} |
|||
} |
@ -1,4 +1,4 @@ |
|||
package io.sc.platform.core.audit; |
|||
package io.sc.platform.core.enums; |
|||
|
|||
/** |
|||
* 审计日志状态枚举 |
@ -1,10 +1,9 @@ |
|||
package io.sc.platform.core.support; |
|||
package io.sc.platform.core.enums; |
|||
|
|||
/** |
|||
* 日志级别枚举 |
|||
*/ |
|||
public enum LogLevel { |
|||
OFF, //关闭
|
|||
ERROR, //错误
|
|||
WARN, //警告
|
|||
INFO, //信息
|
@ -1,21 +1,21 @@ |
|||
io.sc.platform.core.support.LogLevel.OFF=OFF |
|||
io.sc.platform.core.support.LogLevel.ERROR=ERROR |
|||
io.sc.platform.core.support.LogLevel.WARN=WARN |
|||
io.sc.platform.core.support.LogLevel.INFO=INFO |
|||
io.sc.platform.core.support.LogLevel.DEBUG=DEBUG |
|||
io.sc.platform.core.support.LogLevel.TRACE=TRACE |
|||
io.sc.platform.core.enums.LogLevel.ERROR=ERROR |
|||
io.sc.platform.core.enums.LogLevel.WARN=WARN |
|||
io.sc.platform.core.enums.LogLevel.INFO=INFO |
|||
io.sc.platform.core.enums.LogLevel.DEBUG=DEBUG |
|||
io.sc.platform.core.enums.LogLevel.TRACE=TRACE |
|||
|
|||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=Success |
|||
io.sc.platform.core.audit.AuditLogStatus.FAILED=Failed |
|||
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=Success |
|||
io.sc.platform.core.enums.AuditLogStatus.FAILED=Failed |
|||
|
|||
io.sc.platform.core.audit.AuditLogAction.ADD=Add |
|||
io.sc.platform.core.audit.AuditLogAction.REMOVE=Remove |
|||
io.sc.platform.core.audit.AuditLogAction.UPDATE=Update |
|||
io.sc.platform.core.audit.AuditLogAction.QUERY=Query |
|||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=Find One |
|||
io.sc.platform.core.audit.AuditLogAction.EXPORT=Export |
|||
io.sc.platform.core.audit.AuditLogAction.LOGIN=Login |
|||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=Logout |
|||
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=Unknown |
|||
io.sc.platform.core.enums.AuditLogAction.ADD=Add |
|||
io.sc.platform.core.enums.AuditLogAction.REMOVE=Remove |
|||
io.sc.platform.core.enums.AuditLogAction.UPDATE=Update |
|||
io.sc.platform.core.enums.AuditLogAction.QUERY=Query |
|||
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=Find One |
|||
io.sc.platform.core.enums.AuditLogAction.EXPORT=Export |
|||
io.sc.platform.core.enums.AuditLogAction.LOGIN=Login |
|||
io.sc.platform.core.enums.AuditLogAction.LOGOUT=Logout |
|||
|
|||
io.sc.platform.core.enums.Language.en=English |
|||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
|||
|
@ -1,21 +1,21 @@ |
|||
io.sc.platform.core.support.LogLevel.OFF=\u95DC\u9589 |
|||
io.sc.platform.core.support.LogLevel.ERROR=\u932F\u8AA4 |
|||
io.sc.platform.core.support.LogLevel.WARN=\u8B66\u544A |
|||
io.sc.platform.core.support.LogLevel.INFO=\u4FE1\u606F |
|||
io.sc.platform.core.support.LogLevel.DEBUG=\u8ABF\u8A66 |
|||
io.sc.platform.core.support.LogLevel.TRACE=\u8DDF\u8E64 |
|||
io.sc.platform.core.enums.LogLevel.ERROR=\u932F\u8AA4 |
|||
io.sc.platform.core.enums.LogLevel.WARN=\u8B66\u544A |
|||
io.sc.platform.core.enums.LogLevel.INFO=\u4FE1\u606F |
|||
io.sc.platform.core.enums.LogLevel.DEBUG=\u8ABF\u8A66 |
|||
io.sc.platform.core.enums.LogLevel.TRACE=\u8DDF\u8E64 |
|||
|
|||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F |
|||
io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u6557 |
|||
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=\u6210\u529F |
|||
io.sc.platform.core.enums.AuditLogStatus.FAILED=\u5931\u6557 |
|||
|
|||
io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E |
|||
io.sc.platform.core.audit.AuditLogAction.REMOVE=\u522A\u9664 |
|||
io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 |
|||
io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8A62 |
|||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u55AE\u500B |
|||
io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5C0E\u51FA |
|||
io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u9304 |
|||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\u51FA |
|||
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=\u672A\u77E5 |
|||
io.sc.platform.core.enums.AuditLogAction.ADD=\u65B0\u589E |
|||
io.sc.platform.core.enums.AuditLogAction.REMOVE=\u522A\u9664 |
|||
io.sc.platform.core.enums.AuditLogAction.UPDATE=\u66F4\u65B0 |
|||
io.sc.platform.core.enums.AuditLogAction.QUERY=\u67E5\u8A62 |
|||
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=\u67E5\u627E\u55AE\u500B |
|||
io.sc.platform.core.enums.AuditLogAction.EXPORT=\u5C0E\u51FA |
|||
io.sc.platform.core.enums.AuditLogAction.LOGIN=\u767B\u9304 |
|||
io.sc.platform.core.enums.AuditLogAction.LOGOUT=\u9000\u51FA |
|||
|
|||
io.sc.platform.core.enums.Language.en=English |
|||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
|||
|
@ -1,21 +1,21 @@ |
|||
io.sc.platform.core.support.LogLevel.OFF=\u5173\u95ED |
|||
io.sc.platform.core.support.LogLevel.ERROR=\u9519\u8BEF |
|||
io.sc.platform.core.support.LogLevel.WARN=\u8B66\u544A |
|||
io.sc.platform.core.support.LogLevel.INFO=\u4FE1\u606F |
|||
io.sc.platform.core.support.LogLevel.DEBUG=\u8C03\u8BD5 |
|||
io.sc.platform.core.support.LogLevel.TRACE=\u8DDF\u8E2A |
|||
io.sc.platform.core.enums.LogLevel.ERROR=\u9519\u8BEF |
|||
io.sc.platform.core.enums.LogLevel.WARN=\u8B66\u544A |
|||
io.sc.platform.core.enums.LogLevel.INFO=\u4FE1\u606F |
|||
io.sc.platform.core.enums.LogLevel.DEBUG=\u8C03\u8BD5 |
|||
io.sc.platform.core.enums.LogLevel.TRACE=\u8DDF\u8E2A |
|||
|
|||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F |
|||
io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u8D25 |
|||
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=\u6210\u529F |
|||
io.sc.platform.core.enums.AuditLogStatus.FAILED=\u5931\u8D25 |
|||
|
|||
io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E |
|||
io.sc.platform.core.audit.AuditLogAction.REMOVE=\u522A\u9664 |
|||
io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 |
|||
io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8BE2 |
|||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u5355\u4E2A |
|||
io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5BFC\u51FA |
|||
io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u5F55 |
|||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\u51FA |
|||
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=\u672A\u77E5 |
|||
io.sc.platform.core.enums.AuditLogAction.ADD=\u65B0\u589E |
|||
io.sc.platform.core.enums.AuditLogAction.REMOVE=\u522A\u9664 |
|||
io.sc.platform.core.enums.AuditLogAction.UPDATE=\u66F4\u65B0 |
|||
io.sc.platform.core.enums.AuditLogAction.QUERY=\u67E5\u8BE2 |
|||
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=\u67E5\u627E\u5355\u4E2A |
|||
io.sc.platform.core.enums.AuditLogAction.EXPORT=\u5BFC\u51FA |
|||
io.sc.platform.core.enums.AuditLogAction.LOGIN=\u767B\u5F55 |
|||
io.sc.platform.core.enums.AuditLogAction.LOGOUT=\u9000\u51FA |
|||
|
|||
io.sc.platform.core.enums.Language.en=English |
|||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
|||
|
@ -0,0 +1,48 @@ |
|||
package io.sc.platform.security.handler; |
|||
|
|||
import io.sc.platform.core.audit.AuditLog; |
|||
import io.sc.platform.core.enums.AuditLogAction; |
|||
import io.sc.platform.core.enums.AuditLogStatus; |
|||
import io.sc.platform.core.service.AuditLogPersistenter; |
|||
import io.sc.platform.core.service.AuditLogPersistenterManager; |
|||
import io.sc.platform.core.util.IpUtil; |
|||
import io.sc.platform.security.support.SecurityUser; |
|||
import io.sc.platform.security.util.SecurityUtil; |
|||
import org.springframework.security.core.Authentication; |
|||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; |
|||
import org.springframework.security.web.authentication.logout.LogoutFilter; |
|||
import org.springframework.security.web.authentication.logout.LogoutHandler; |
|||
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; |
|||
|
|||
import javax.servlet.ServletException; |
|||
import javax.servlet.http.HttpServletRequest; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.io.IOException; |
|||
|
|||
public class PlatformLogoutSuccessHandler implements LogoutSuccessHandler { |
|||
private AuditLogPersistenterManager auditLogPersistenterManager; |
|||
|
|||
public PlatformLogoutSuccessHandler(AuditLogPersistenterManager auditLogPersistenterManager){ |
|||
this.auditLogPersistenterManager =auditLogPersistenterManager; |
|||
} |
|||
|
|||
@Override |
|||
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { |
|||
AuditLogPersistenter logger =auditLogPersistenterManager.getAuditLogPersister(); |
|||
if(logger!=null){ |
|||
AuditLog auditLog =new AuditLog(); |
|||
auditLog.setAction(AuditLogAction.LOGOUT.getValue()); |
|||
auditLog.setExecuteTime(10L); |
|||
auditLog.setClassName(LogoutHandler.class.getName()); |
|||
auditLog.setMethodName("logout"); |
|||
auditLog.setHttpMethod("POST"); |
|||
auditLog.setStatus(AuditLogStatus.SUCCESS.getValue()); |
|||
auditLog.setUrl(request.getRequestURL().toString()); |
|||
if(authentication!=null && authentication.getPrincipal() instanceof SecurityUser){ |
|||
auditLog.setLoginName(((SecurityUser)authentication.getPrincipal()).getLoginName()); |
|||
} |
|||
auditLog.setIp(IpUtil.getRemoteIp(request)); |
|||
logger.log(auditLog); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,25 @@ |
|||
package io.sc.platform.system.monitor.support; |
|||
|
|||
import io.sc.platform.core.support.LoggerLevelInfo; |
|||
import io.sc.platform.core.util.EnumUtil; |
|||
|
|||
import java.util.Comparator; |
|||
|
|||
public class LogLevelConfiguredLevelComparator implements Comparator<LoggerLevelInfo> { |
|||
private boolean asc =true; |
|||
|
|||
public LogLevelConfiguredLevelComparator(){} |
|||
|
|||
public LogLevelConfiguredLevelComparator(boolean asc){ |
|||
this.asc =asc; |
|||
} |
|||
|
|||
@Override |
|||
public int compare(LoggerLevelInfo o1, LoggerLevelInfo o2) { |
|||
if(asc) { |
|||
return EnumUtil.compare(o1.getConfiguredLevel(),o2.getConfiguredLevel()); |
|||
}else{ |
|||
return EnumUtil.compare(o2.getConfiguredLevel(),o1.getConfiguredLevel()); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,24 @@ |
|||
package io.sc.platform.system.monitor.support; |
|||
|
|||
import io.sc.platform.core.support.LoggerLevelInfo; |
|||
|
|||
import java.util.Comparator; |
|||
|
|||
public class LogLevelEffectiveLevelComparator implements Comparator<LoggerLevelInfo> { |
|||
private boolean asc =true; |
|||
|
|||
public LogLevelEffectiveLevelComparator(){} |
|||
|
|||
public LogLevelEffectiveLevelComparator(boolean asc){ |
|||
this.asc =asc; |
|||
} |
|||
|
|||
@Override |
|||
public int compare(LoggerLevelInfo o1, LoggerLevelInfo o2) { |
|||
if(asc) { |
|||
return o1.getEffectiveLevel().compareTo(o2.getEffectiveLevel()); |
|||
}else{ |
|||
return o2.getEffectiveLevel().compareTo(o1.getEffectiveLevel()); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,26 @@ |
|||
package io.sc.platform.system.monitor.support; |
|||
|
|||
import io.sc.platform.core.support.FileWrapper; |
|||
import io.sc.platform.core.support.LoggerLevelInfo; |
|||
import io.sc.platform.core.util.PinyinUtil; |
|||
|
|||
import java.util.Comparator; |
|||
|
|||
public class LogLevelNameComparator implements Comparator<LoggerLevelInfo> { |
|||
private boolean asc =true; |
|||
|
|||
public LogLevelNameComparator(){} |
|||
|
|||
public LogLevelNameComparator(boolean asc){ |
|||
this.asc =asc; |
|||
} |
|||
|
|||
@Override |
|||
public int compare(LoggerLevelInfo o1, LoggerLevelInfo o2) { |
|||
if(asc) { |
|||
return o1.getName().compareTo(o2.getName()); |
|||
}else{ |
|||
return o2.getName().compareTo(o1.getName()); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,5 @@ |
|||
{ |
|||
"ignoredPatterns":[ |
|||
"^insert into sys_audit_log" |
|||
] |
|||
} |
Loading…
Reference in new issue