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 { |
public enum LogLevel { |
||||
OFF, //关闭
|
|
||||
ERROR, //错误
|
ERROR, //错误
|
||||
WARN, //警告
|
WARN, //警告
|
||||
INFO, //信息
|
INFO, //信息
|
@ -1,21 +1,21 @@ |
|||||
io.sc.platform.core.support.LogLevel.OFF=OFF |
io.sc.platform.core.enums.LogLevel.ERROR=ERROR |
||||
io.sc.platform.core.support.LogLevel.ERROR=ERROR |
io.sc.platform.core.enums.LogLevel.WARN=WARN |
||||
io.sc.platform.core.support.LogLevel.WARN=WARN |
io.sc.platform.core.enums.LogLevel.INFO=INFO |
||||
io.sc.platform.core.support.LogLevel.INFO=INFO |
io.sc.platform.core.enums.LogLevel.DEBUG=DEBUG |
||||
io.sc.platform.core.support.LogLevel.DEBUG=DEBUG |
io.sc.platform.core.enums.LogLevel.TRACE=TRACE |
||||
io.sc.platform.core.support.LogLevel.TRACE=TRACE |
|
||||
|
|
||||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=Success |
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=Success |
||||
io.sc.platform.core.audit.AuditLogStatus.FAILED=Failed |
io.sc.platform.core.enums.AuditLogStatus.FAILED=Failed |
||||
|
|
||||
io.sc.platform.core.audit.AuditLogAction.ADD=Add |
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=Unknown |
||||
io.sc.platform.core.audit.AuditLogAction.REMOVE=Remove |
io.sc.platform.core.enums.AuditLogAction.ADD=Add |
||||
io.sc.platform.core.audit.AuditLogAction.UPDATE=Update |
io.sc.platform.core.enums.AuditLogAction.REMOVE=Remove |
||||
io.sc.platform.core.audit.AuditLogAction.QUERY=Query |
io.sc.platform.core.enums.AuditLogAction.UPDATE=Update |
||||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=Find One |
io.sc.platform.core.enums.AuditLogAction.QUERY=Query |
||||
io.sc.platform.core.audit.AuditLogAction.EXPORT=Export |
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=Find One |
||||
io.sc.platform.core.audit.AuditLogAction.LOGIN=Login |
io.sc.platform.core.enums.AuditLogAction.EXPORT=Export |
||||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=Logout |
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.en=English |
||||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
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.enums.LogLevel.ERROR=\u932F\u8AA4 |
||||
io.sc.platform.core.support.LogLevel.ERROR=\u932F\u8AA4 |
io.sc.platform.core.enums.LogLevel.WARN=\u8B66\u544A |
||||
io.sc.platform.core.support.LogLevel.WARN=\u8B66\u544A |
io.sc.platform.core.enums.LogLevel.INFO=\u4FE1\u606F |
||||
io.sc.platform.core.support.LogLevel.INFO=\u4FE1\u606F |
io.sc.platform.core.enums.LogLevel.DEBUG=\u8ABF\u8A66 |
||||
io.sc.platform.core.support.LogLevel.DEBUG=\u8ABF\u8A66 |
io.sc.platform.core.enums.LogLevel.TRACE=\u8DDF\u8E64 |
||||
io.sc.platform.core.support.LogLevel.TRACE=\u8DDF\u8E64 |
|
||||
|
|
||||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F |
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=\u6210\u529F |
||||
io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u6557 |
io.sc.platform.core.enums.AuditLogStatus.FAILED=\u5931\u6557 |
||||
|
|
||||
io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E |
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=\u672A\u77E5 |
||||
io.sc.platform.core.audit.AuditLogAction.REMOVE=\u522A\u9664 |
io.sc.platform.core.enums.AuditLogAction.ADD=\u65B0\u589E |
||||
io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 |
io.sc.platform.core.enums.AuditLogAction.REMOVE=\u522A\u9664 |
||||
io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8A62 |
io.sc.platform.core.enums.AuditLogAction.UPDATE=\u66F4\u65B0 |
||||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u55AE\u500B |
io.sc.platform.core.enums.AuditLogAction.QUERY=\u67E5\u8A62 |
||||
io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5C0E\u51FA |
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=\u67E5\u627E\u55AE\u500B |
||||
io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u9304 |
io.sc.platform.core.enums.AuditLogAction.EXPORT=\u5C0E\u51FA |
||||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\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.en=English |
||||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
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.enums.LogLevel.ERROR=\u9519\u8BEF |
||||
io.sc.platform.core.support.LogLevel.ERROR=\u9519\u8BEF |
io.sc.platform.core.enums.LogLevel.WARN=\u8B66\u544A |
||||
io.sc.platform.core.support.LogLevel.WARN=\u8B66\u544A |
io.sc.platform.core.enums.LogLevel.INFO=\u4FE1\u606F |
||||
io.sc.platform.core.support.LogLevel.INFO=\u4FE1\u606F |
io.sc.platform.core.enums.LogLevel.DEBUG=\u8C03\u8BD5 |
||||
io.sc.platform.core.support.LogLevel.DEBUG=\u8C03\u8BD5 |
io.sc.platform.core.enums.LogLevel.TRACE=\u8DDF\u8E2A |
||||
io.sc.platform.core.support.LogLevel.TRACE=\u8DDF\u8E2A |
|
||||
|
|
||||
io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F |
io.sc.platform.core.enums.AuditLogStatus.SUCCESS=\u6210\u529F |
||||
io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u8D25 |
io.sc.platform.core.enums.AuditLogStatus.FAILED=\u5931\u8D25 |
||||
|
|
||||
io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E |
io.sc.platform.core.enums.AuditLogAction.UNKNOWN=\u672A\u77E5 |
||||
io.sc.platform.core.audit.AuditLogAction.REMOVE=\u522A\u9664 |
io.sc.platform.core.enums.AuditLogAction.ADD=\u65B0\u589E |
||||
io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 |
io.sc.platform.core.enums.AuditLogAction.REMOVE=\u522A\u9664 |
||||
io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8BE2 |
io.sc.platform.core.enums.AuditLogAction.UPDATE=\u66F4\u65B0 |
||||
io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u5355\u4E2A |
io.sc.platform.core.enums.AuditLogAction.QUERY=\u67E5\u8BE2 |
||||
io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5BFC\u51FA |
io.sc.platform.core.enums.AuditLogAction.FIND_ONE=\u67E5\u627E\u5355\u4E2A |
||||
io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u5F55 |
io.sc.platform.core.enums.AuditLogAction.EXPORT=\u5BFC\u51FA |
||||
io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\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.en=English |
||||
io.sc.platform.core.enums.Language.zh_CN=\u7B80\u4F53\u4E2D\u6587 |
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