Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
300d89fd
Commit
300d89fd
authored
Aug 01, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/base-modify' into base-modify
parents
533e3792
7d77c5e0
Changes
38
Hide whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
533 additions
and
299 deletions
+533
-299
AuthBootstrap.java
.../java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
+2
-2
DenyFilter.java
...a/com/github/wxiaoqi/security/auth/filter/DenyFilter.java
+0
-12
logback.xml
ace-auth/ace-auth-server/src/main/resources/logback.xml
+5
-3
pom.xml
ace-common/pom.xml
+0
-1
AddBasicConfiguration.java
...oqi/security/common/annotation/AddBasicConfiguration.java
+14
-0
GlobalBasicConfiguration.java
...curity/common/config/global/GlobalBasicConfiguration.java
+35
-0
AcceptFilter.java
...m/github/wxiaoqi/security/common/filter/AcceptFilter.java
+5
-1
DenyFilter.java
...com/github/wxiaoqi/security/common/filter/DenyFilter.java
+5
-1
NacosLogFilter.java
...github/wxiaoqi/security/common/filter/NacosLogFilter.java
+16
-0
JsonUtil.java
...ava/com/github/wxiaoqi/security/common/util/JsonUtil.java
+93
-0
RequestContextHolderUtil.java
...xiaoqi/security/common/util/RequestContextHolderUtil.java
+59
-0
pom.xml
ace-control/pom.xml
+14
-14
AcceptFilter.java
...com/github/wxiaoqi/security/gate/filter/AcceptFilter.java
+0
-12
AccessGatewayFilter.java
...hub/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
+72
-13
DenyFilter.java
...a/com/github/wxiaoqi/security/gate/filter/DenyFilter.java
+0
-12
ResponseRecordFilter.java
...ub/wxiaoqi/security/gate/filter/ResponseRecordFilter.java
+149
-0
logback.xml
ace-gate/src/main/resources/logback.xml
+3
-12
AdminBootstrap.java
...ava/com/github/wxiaoqi/security/admin/AdminBootstrap.java
+2
-0
AcceptFilter.java
...om/github/wxiaoqi/security/admin/filter/AcceptFilter.java
+0
-12
DenyFilter.java
.../com/github/wxiaoqi/security/admin/filter/DenyFilter.java
+0
-12
logback.xml
ace-modules/ace-admin/src/main/resources/logback.xml
+3
-12
ActivityApplication.java
.../java/com/xxfc/platform/activity/ActivityApplication.java
+2
-0
logback.xml
...ctivity/xx-activity-server/src/main/resources/logback.xml
+1
-10
AppApplication.java
...r/src/main/java/com/xxfc/platform/app/AppApplication.java
+2
-0
logback.xml
xx-app/xx-app-server/src/main/resources/logback.xml
+1
-10
CampSiteApplication.java
.../java/com/xxfc/platform/campsite/CampSiteApplication.java
+2
-1
logback.xml
...ampsite/xx-campsite-server/src/main/resources/logback.xml
+32
-104
ImApplication.java
...ver/src/main/java/com/xxfc/platform/im/ImApplication.java
+2
-0
logback.xml
xx-im/xx-im-server/src/main/resources/logback.xml
+1
-10
OrderApplication.java
...c/main/java/com/xxfc/platform/order/OrderApplication.java
+2
-2
OrderRefundBiz.java
...main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
+1
-1
logback.xml
xx-order/xx-order-server/src/main/resources/logback.xml
+1
-10
TourApplication.java
...src/main/java/com/xxfc/platform/tour/TourApplication.java
+2
-0
logback.xml
xx-tour/xx-tour-server/src/main/resources/logback.xml
+1
-10
UniversalApplication.java
...ava/com/xxfc/platform/universal/UniversalApplication.java
+2
-1
logback.xml
...versal/xx-universal-server/src/main/resources/logback.xml
+1
-10
VehicleApplication.java
...in/java/com/xxfc/platform/vehicle/VehicleApplication.java
+2
-1
logback.xml
xx-vehicle/xx-vehicle-server/src/main/resources/logback.xml
+1
-10
No files found.
ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
auth
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.feign.IUserService
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
...
@@ -15,6 +14,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@AddBasicConfiguration
@MapperScan
(
"com.github.wxiaoqi.security.auth.mapper"
)
//@EnableAutoConfiguration
public
class
AuthBootstrap
{
...
...
ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/filter/DenyFilter.java
deleted
100644 → 0
View file @
533e3792
package
com
.
github
.
wxiaoqi
.
security
.
auth
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-auth/ace-auth-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -18,7 +19,7 @@
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
auth
.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -26,10 +27,10 @@
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</appender>
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
auth
.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -39,6 +40,7 @@
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
...
...
ace-common/pom.xml
View file @
300d89fd
...
...
@@ -33,7 +33,6 @@
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
...
...
ace-common/src/main/java/com/github/wxiaoqi/security/common/annotation/AddBasicConfiguration.java
0 → 100644
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
common
.
annotation
;
import
com.github.wxiaoqi.security.common.config.global.GlobalBasicConfiguration
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
import
org.springframework.context.annotation.Import
;
import
java.lang.annotation.*
;
@EnableAspectJAutoProxy
@Import
(
GlobalBasicConfiguration
.
class
)
@Target
(
ElementType
.
TYPE
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
public
@interface
AddBasicConfiguration
{}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/config/global/GlobalBasicConfiguration.java
0 → 100644
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
common
.
config
.
global
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationRunner
;
import
org.springframework.core.env.Environment
;
public
class
GlobalBasicConfiguration
implements
ApplicationRunner
{
private
static
Logger
log
=
LoggerFactory
.
getLogger
(
GlobalBasicConfiguration
.
class
);
private
static
Environment
env
;
@Autowired
private
void
setEnv
(
Environment
env
)
{
GlobalBasicConfiguration
.
env
=
env
;
}
@Override
public
void
run
(
ApplicationArguments
args
)
throws
Exception
{
showApplicationProperties
(
"数据库连接地址: "
,
"spring.datasource.url"
);
showApplicationProperties
(
"Redis连接主机: "
,
"spring.redis.host"
);
showApplicationProperties
(
"Redis连接端口: "
,
"spring.redis.port"
);
showApplicationProperties
(
"rabbitmq连接主机"
,
"spring.rabbitmq.host"
);
showApplicationProperties
(
"rabbitmq连接虚拟机"
,
"spring.rabbitmq.virtual-host"
);
}
public
static
void
showApplicationProperties
(
String
key
,
String
value
)
{
if
(
env
!=
null
)
{
log
.
info
(
key
+
"{}"
,
env
.
getProperty
(
value
));
}
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/filter/AcceptFilter.java
View file @
300d89fd
...
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
||
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
))
{
return
FilterReply
.
ACCEPT
;
}
else
{
return
FilterReply
.
DENY
;
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/filter/DenyFilter.java
View file @
300d89fd
...
...
@@ -7,6 +7,10 @@ import ch.qos.logback.core.spi.FilterReply;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.alibaba.nacos"
)
||
event
.
getLoggerName
().
startsWith
(
"com.xxfc.platform"
)
||
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
))
{
return
FilterReply
.
DENY
;
}
else
{
return
FilterReply
.
ACCEPT
;
}
}
}
\ No newline at end of file
ace-
auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/filter/Accept
Filter.java
→
ace-
common/src/main/java/com/github/wxiaoqi/security/common/filter/NacosLog
Filter.java
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
auth
.
filter
;
package
com
.
github
.
wxiaoqi
.
security
.
common
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
Accept
Filter
extends
Filter
<
ILoggingEvent
>
{
public
class
NacosLog
Filter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
if
(
event
.
getLoggerName
().
startsWith
(
"com.alibaba.nacos"
))
{
return
FilterReply
.
DENY
;
}
else
{
return
FilterReply
.
ACCEPT
;
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/JsonUtil.java
0 → 100644
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
java.util.List
;
import
java.util.Map
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.StringUtils
;
import
com.fasterxml.jackson.annotation.JsonInclude.Include
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JavaType
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
public
abstract
class
JsonUtil
{
private
static
final
ObjectMapper
mapper
=
new
ObjectMapper
();
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
JsonUtil
.
class
);
static
{
mapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
mapper
.
setSerializationInclusion
(
Include
.
NON_NULL
);
}
public
static
String
objectToJson
(
Object
data
)
{
try
{
return
mapper
.
writeValueAsString
(
data
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.objectToJson execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
T
jsonToPojo
(
String
jsonData
,
Class
<
T
>
beanType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
return
mapper
.
readValue
(
jsonData
,
beanType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToPojo execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
,
R
>
R
objectToObject
(
T
srcObj
,
Class
<
R
>
beanType
)
{
String
toJson
=
objectToJson
(
srcObj
);
return
jsonToPojo
(
toJson
,
beanType
);
}
@SuppressWarnings
(
"rawtypes"
)
public
static
<
T
,
R
>
R
objectToObjectByTypeReference
(
T
srcObj
,
TypeReference
valueTypeRef
)
{
String
toJson
=
objectToJson
(
srcObj
);
return
toPojoByTypeReference
(
toJson
,
valueTypeRef
);
}
@SuppressWarnings
(
"unchecked"
)
public
static
<
T
,
R
>
Map
<
T
,
R
>
jsonToMap
(
String
json
)
{
return
jsonToPojo
(
json
,
Map
.
class
);
}
public
static
<
T
>
List
<
T
>
jsonToList
(
String
jsonData
,
Class
<
T
>
beanType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
JavaType
javaType
=
mapper
.
getTypeFactory
().
constructParametricType
(
List
.
class
,
beanType
);
return
mapper
.
readValue
(
jsonData
,
javaType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToList execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
@SuppressWarnings
(
"rawtypes"
)
public
static
<
T
>
T
toPojoByTypeReference
(
String
jsonData
,
TypeReference
valueTypeRef
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
return
mapper
.
readValue
(
jsonData
,
valueTypeRef
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToPojo execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
T
jsonToGeneric
(
String
jsonData
,
Class
<
T
>
beanType
,
Class
<?>
resultType
)
{
try
{
if
(
StringUtils
.
isEmpty
(
jsonData
))
return
null
;
JavaType
javaType
=
mapper
.
getTypeFactory
().
constructParametricType
(
beanType
,
beanType
);
return
mapper
.
readValue
(
jsonData
,
javaType
);
}
catch
(
Exception
e
)
{
log
.
error
(
"JsonUtil.jsonToList execution failure!"
);
throw
new
RuntimeException
(
e
);
}
}
}
\ No newline at end of file
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/RequestContextHolderUtil.java
0 → 100644
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
org.springframework.web.context.ContextLoader
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
/**
* 获取request中的参数
*/
public
class
RequestContextHolderUtil
{
public
static
HttpServletRequest
getRequest
()
{
return
getRequestAttributes
().
getRequest
();
}
public
static
HttpServletResponse
getResponse
()
{
return
getRequestAttributes
().
getResponse
();
}
public
static
HttpSession
getSession
(
boolean
create
)
{
return
getRequest
().
getSession
(
create
);
}
public
static
HttpSession
getSession
()
{
return
getSession
(
true
);
}
public
static
String
getRequestParameter
(
String
name
)
{
return
getRequest
().
getParameter
(
name
);
}
public
static
ServletRequestAttributes
getRequestAttributes
()
{
RequestAttributes
requestAttributes
=
RequestContextHolder
.
currentRequestAttributes
();
return
((
ServletRequestAttributes
)
requestAttributes
);
}
public
static
ServletContext
getServletContext
()
{
return
ContextLoader
.
getCurrentWebApplicationContext
().
getServletContext
();
}
public
static
String
getRequestHeader
(
String
name
)
{
return
getRequest
().
getHeader
(
name
);
}
public
static
String
getBaseUrl
()
{
HttpServletRequest
request
=
getRequest
();
StringBuffer
requestURL
=
request
.
getRequestURL
();
String
url
=
requestURL
.
delete
(
requestURL
.
length
()
-
request
.
getRequestURI
().
length
(),
requestURL
.
length
())
.
toString
();
return
url
;
}
}
\ No newline at end of file
ace-control/pom.xml
View file @
300d89fd
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
ace-security
</artifactId>
<groupId>
com.github.wxiaoqi
</groupId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
pom
</packaging>
<artifactId>
ace-control
</artifactId>
<modules>
<module>
ace-monitor
</module>
</modules>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
ace-security
</artifactId>
<groupId>
com.github.wxiaoqi
</groupId>
<version>
2.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
pom
</packaging>
<artifactId>
ace-control
</artifactId>
<modules>
<module>
ace-monitor
</module>
</modules>
</project>
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AcceptFilter.java
deleted
100644 → 0
View file @
533e3792
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
}
}
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AccessGatewayFilter.java
View file @
300d89fd
...
...
@@ -13,10 +13,10 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import
com.github.wxiaoqi.security.common.msg.BaseResponse
;
import
com.github.wxiaoqi.security.common.msg.auth.TokenForbiddenResponse
;
import
com.github.wxiaoqi.security.gate.feign.IAppUserService
;
import
com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory
;
import
com.github.wxiaoqi.security.gate.utils.DBLog
;
import
com.github.wxiaoqi.security.gate.feign.ILogService
;
import
com.github.wxiaoqi.security.gate.feign.IUserService
;
import
com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory
;
import
com.github.wxiaoqi.security.gate.utils.DBLog
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.jetbrains.annotations.NotNull
;
...
...
@@ -24,23 +24,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.cloud.gateway.support.DefaultServerRequest
;
import
org.springframework.cloud.gateway.support.ServerWebExchangeUtils
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.reactive.function.server.ServerRequest
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
import
java.net.URI
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Date
;
import
java.util.Iterator
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.*
;
import
java.util.function.Predicate
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
...
...
@@ -52,7 +54,7 @@ import java.util.stream.Stream;
*/
@Configuration
@Slf4j
public
class
AccessGatewayFilter
implements
GlobalFilter
{
public
class
AccessGatewayFilter
implements
GlobalFilter
{
@Autowired
@Lazy
private
IUserService
userService
;
...
...
@@ -91,6 +93,7 @@ public class AccessGatewayFilter implements GlobalFilter {
log
.
info
(
"check token and user permission...."
);
LinkedHashSet
requiredAttribute
=
serverWebExchange
.
getRequiredAttribute
(
ServerWebExchangeUtils
.
GATEWAY_ORIGINAL_REQUEST_URL_ATTR
);
ServerHttpRequest
request
=
serverWebExchange
.
getRequest
();
setLogService
(
serverWebExchange
,
gatewayFilterChain
);
String
requestUri
=
request
.
getPath
().
pathWithinApplication
().
value
();
if
(
requiredAttribute
!=
null
)
{
Iterator
<
URI
>
iterator
=
requiredAttribute
.
iterator
();
...
...
@@ -116,12 +119,6 @@ public class AccessGatewayFilter implements GlobalFilter {
log
.
error
(
"用户Token过期异常"
,
e
);
return
getVoidMono
(
serverWebExchange
,
new
TokenForbiddenResponse
(
"User Token Forbidden or Expired!"
));
}
// String requestType = user.getRequestType();
//
// if (requestType == null || requestType.trim().equals("")) {
// requestType = RequestTypeConstants.BASE;
// }
List
<
PermissionInfo
>
permissionIfs
=
userService
.
getAllPermissionInfo
();
// 判断资源是否启用权限约束
Stream
<
PermissionInfo
>
stream
=
getPermissionIfs
(
requestUri
,
method
,
permissionIfs
);
...
...
@@ -273,4 +270,66 @@ public class AccessGatewayFilter implements GlobalFilter {
return
serverWebExchange
.
getResponse
().
setComplete
();
}
public
void
setLogService
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
MediaType
mediaType
=
exchange
.
getRequest
().
getHeaders
().
getContentType
();
ServerRequest
serverRequest
=
new
DefaultServerRequest
(
exchange
);
// 如果是json格式,将body内容转化为object or map 都可
if
(
MediaType
.
APPLICATION_JSON
.
isCompatibleWith
(
mediaType
)){
Mono
<
Object
>
modifiedBody
=
serverRequest
.
bodyToMono
(
Object
.
class
)
.
flatMap
(
body
->
{
recordLog
(
exchange
.
getRequest
(),
body
);
return
Mono
.
just
(
body
);
});
}
// 如果是表单请求
else
if
(
MediaType
.
APPLICATION_FORM_URLENCODED
.
isCompatibleWith
(
mediaType
)){
Mono
<
String
>
modifiedBody
=
serverRequest
.
bodyToMono
(
String
.
class
)
// .log("modify_request_mono", Level.INFO)
.
flatMap
(
body
->
{
recordLog
(
exchange
.
getRequest
(),
body
);
return
Mono
.
just
(
body
);
});
}
// TODO 这里未来还可以限制一些格式
// 无法兼容的请求,则不读取body,像Get请求这种
recordLog
(
exchange
.
getRequest
(),
""
);
}
private
void
recordLog
(
ServerHttpRequest
request
,
Object
body
)
{
// 记录要访问的url
StringBuilder
builder
=
new
StringBuilder
();
log
.
info
(
"=================请求uri:"
+
request
.
getURI
().
getRawPath
());
// 记录访问的方法
HttpMethod
method
=
request
.
getMethod
();
if
(
null
!=
method
){
log
.
info
(
"=================请求方法:"
+
method
.
name
());
}
// 记录头部信息
builder
.
append
(
", header { "
);
for
(
Map
.
Entry
<
String
,
List
<
String
>>
entry
:
request
.
getHeaders
().
entrySet
())
{
builder
.
append
(
entry
.
getKey
()).
append
(
":"
).
append
(
StringUtils
.
join
(
entry
.
getValue
(),
","
)).
append
(
","
);
}
log
.
info
(
"=================请求头header:"
+
builder
.
toString
());
// 记录参数
builder
=
new
StringBuilder
();
// 处理get的请求
if
(
null
!=
method
&&
HttpMethod
.
GET
.
matches
(
method
.
name
()))
{
// 记录请求的参数信息 针对GET 请求
MultiValueMap
<
String
,
String
>
queryParams
=
request
.
getQueryParams
();
for
(
Map
.
Entry
<
String
,
List
<
String
>>
entry
:
queryParams
.
entrySet
())
{
builder
.
append
(
entry
.
getKey
()).
append
(
"="
).
append
(
StringUtils
.
join
(
entry
.
getValue
(),
","
)).
append
(
","
);
}
}
else
{
// 从body中读取参数
builder
.
append
(
body
);
}
log
.
info
(
"=================请求参数:"
+
builder
.
toString
());
}
}
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/DenyFilter.java
deleted
100644 → 0
View file @
533e3792
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/ResponseRecordFilter.java
0 → 100644
View file @
300d89fd
package
com
.
github
.
wxiaoqi
.
security
.
gate
.
filter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.reactivestreams.Publisher
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.cloud.gateway.support.BodyInserterContext
;
import
org.springframework.cloud.gateway.support.CachedBodyOutputMessage
;
import
org.springframework.cloud.gateway.support.DefaultClientResponse
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.codec.Decoder
;
import
org.springframework.core.codec.Encoder
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseCookie
;
import
org.springframework.http.client.reactive.ClientHttpResponse
;
import
org.springframework.http.codec.ClientCodecConfigurer
;
import
org.springframework.http.codec.json.Jackson2JsonDecoder
;
import
org.springframework.http.codec.json.Jackson2JsonEncoder
;
import
org.springframework.http.server.reactive.ServerHttpResponseDecorator
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.reactive.function.BodyInserter
;
import
org.springframework.web.reactive.function.BodyInserters
;
import
org.springframework.web.reactive.function.client.ExchangeStrategies
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
import
java.util.function.Consumer
;
import
java.util.function.Function
;
@Component
@Slf4j
public
class
ResponseRecordFilter
implements
GlobalFilter
,
Ordered
{
Class
inClass
=
String
.
class
;
Class
outClass
=
String
.
class
;
private
static
Decoder
decoder
=
new
Jackson2JsonDecoder
();
private
static
Encoder
encoder
=
new
Jackson2JsonEncoder
();
private
static
final
ExchangeStrategies
STRATEGIES
;
static
{
STRATEGIES
=
ExchangeStrategies
.
builder
().
codecs
(
new
Consumer
<
ClientCodecConfigurer
>()
{
@Override
public
void
accept
(
ClientCodecConfigurer
clientCodecConfigurer
)
{
ClientCodecConfigurer
.
ClientDefaultCodecs
clientDefaultCodecs
=
clientCodecConfigurer
.
defaultCodecs
();
clientDefaultCodecs
.
jackson2JsonDecoder
(
decoder
);
clientDefaultCodecs
.
jackson2JsonEncoder
(
encoder
);
}
}).
build
();
}
@Override
public
Mono
<
Void
>
filter
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
// 响应报文打印
Function
responseRead
=
body
->
{
log
.
info
(
"===============响应体:body = {}"
,
body
);
return
Mono
.
just
(
body
);
};
ServerHttpResponseDecorator
responseDecorator
=
new
ServerHttpResponseDecorator
(
exchange
.
getResponse
())
{
@Override
public
Mono
<
Void
>
writeWith
(
Publisher
<?
extends
DataBuffer
>
body
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
add
(
"Content-Type"
,
"application/json"
);
ResponseAdapter
responseAdapter
=
new
ResponseAdapter
(
body
,
httpHeaders
);
DefaultClientResponse
clientResponse
=
new
DefaultClientResponse
(
responseAdapter
,
STRATEGIES
);
Mono
modifiedBody
=
clientResponse
.
bodyToMono
(
inClass
).
flatMap
(
responseRead
);
BodyInserter
bodyInserter
=
BodyInserters
.
fromPublisher
(
modifiedBody
,
outClass
);
CachedBodyOutputMessage
outputMessage
=
new
CachedBodyOutputMessage
(
exchange
,
exchange
.
getResponse
().
getHeaders
());
return
bodyInserter
.
insert
(
outputMessage
,
new
BodyInserterContext
()).
then
(
Mono
.
defer
(()
->
{
Flux
<
DataBuffer
>
messageBody
=
outputMessage
.
getBody
();
HttpHeaders
headers
=
this
.
getDelegate
().
getHeaders
();
if
(!
headers
.
containsKey
(
"Transfer-Encoding"
))
{
messageBody
=
messageBody
.
doOnNext
((
data
)
->
{
headers
.
setContentLength
((
long
)
data
.
readableByteCount
());
});
}
return
this
.
getDelegate
().
writeWith
(
messageBody
);
}));
}
@Override
public
Mono
<
Void
>
writeAndFlushWith
(
Publisher
<?
extends
Publisher
<?
extends
DataBuffer
>>
body
)
{
return
this
.
writeWith
(
Flux
.
from
(
body
).
flatMapSequential
((
p
)
->
{
return
p
;
}));
}
};
return
chain
.
filter
(
exchange
.
mutate
().
response
(
responseDecorator
).
build
());
}
@Override
public
int
getOrder
()
{
return
Ordered
.
HIGHEST_PRECEDENCE
;
}
public
static
class
ResponseAdapter
implements
ClientHttpResponse
{
private
final
Flux
<
DataBuffer
>
flux
;
private
final
HttpHeaders
headers
;
public
ResponseAdapter
(
Publisher
<?
extends
DataBuffer
>
body
,
HttpHeaders
headers
)
{
this
.
headers
=
headers
;
if
(
body
instanceof
Flux
)
{
this
.
flux
=
(
Flux
)
body
;
}
else
{
this
.
flux
=
((
Mono
)
body
).
flux
();
}
}
@Override
public
Flux
<
DataBuffer
>
getBody
()
{
return
this
.
flux
;
}
@Override
public
HttpHeaders
getHeaders
()
{
return
this
.
headers
;
}
@Override
public
HttpStatus
getStatusCode
()
{
return
null
;
}
@Override
public
int
getRawStatusCode
()
{
return
0
;
}
@Override
public
MultiValueMap
<
String
,
ResponseCookie
>
getCookies
()
{
return
null
;
}
}
}
ace-gate/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -18,7 +19,7 @@
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
gate
.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -29,7 +30,7 @@
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
gate
.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
common
.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
View file @
300d89fd
...
...
@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker
;
...
...
@@ -31,6 +32,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@MapperScan
(
"com.github.wxiaoqi.security.admin.mapper"
)
@EnableAspectJAutoProxy
(
proxyTargetClass
=
true
,
exposeProxy
=
true
)
//@EnableSwagger2Doc
@AddBasicConfiguration
public
class
AdminBootstrap
{
public
static
void
main
(
String
[]
args
)
{
new
SpringApplicationBuilder
(
AdminBootstrap
.
class
).
run
(
args
);
}
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/filter/AcceptFilter.java
deleted
100644 → 0
View file @
533e3792
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
AcceptFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
ACCEPT
:
FilterReply
.
DENY
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/filter/DenyFilter.java
deleted
100644 → 0
View file @
533e3792
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
filter
;
import
ch.qos.logback.classic.spi.ILoggingEvent
;
import
ch.qos.logback.core.filter.Filter
;
import
ch.qos.logback.core.spi.FilterReply
;
public
class
DenyFilter
extends
Filter
<
ILoggingEvent
>
{
@Override
public
FilterReply
decide
(
ILoggingEvent
event
)
{
return
event
.
getLoggerName
().
startsWith
(
"com.github.wxiaoqi"
)
?
FilterReply
.
DENY
:
FilterReply
.
ACCEPT
;
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -18,7 +19,7 @@
</appender>
<appender
name=
"SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
admi
n.filter.DenyFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
commo
n.filter.DenyFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -29,7 +30,7 @@
</appender>
<appender
name=
"WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 -->
<filter
class=
"com.github.wxiaoqi.security.
admi
n.filter.AcceptFilter"
></filter>
<filter
class=
"com.github.wxiaoqi.security.
commo
n.filter.AcceptFilter"
></filter>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/ActivityApplication.java
View file @
300d89fd
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.activity;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
...
...
@@ -30,6 +31,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableAceCache
@EnableCaching
@MapperScan
(
basePackages
=
"com.xxfc.platform.activity.mapper"
)
@AddBasicConfiguration
public
class
ActivityApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-activity/xx-activity-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/AppApplication.java
View file @
300d89fd
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.app;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
...
@@ -19,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.app.mapper"
)
public
class
AppApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-app/xx-app-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-campsite/xx-campsite-server/src/main/java/com/xxfc/platform/campsite/CampSiteApplication.java
View file @
300d89fd
...
...
@@ -3,9 +3,9 @@ package com.xxfc.platform.campsite;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
...
...
@@ -27,6 +27,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableScheduling
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@AddBasicConfiguration
@MapperScan
(
basePackages
=
"com.xxfc.platform.campsite.mapper"
)
public
class
CampSiteApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-campsite/xx-campsite-server/src/main/resources/logback.xml
View file @
300d89fd
<configuration
debug=
"false"
scan=
"true"
scanPeriod=
"10 seconds"
>
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<!--<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>-->
<contextName>
logback
</contextName>
<!--输出sql语句-->
<logger
name=
"com.xxfc"
level=
"debug"
/>
<property
name=
"path"
value=
"logs"
></property>
<property
name=
"maxHistory"
value=
"30"
/>
<property
name=
"maxFileSize"
value=
"50MB"
/>
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
debug
</level>
</filter>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<appender
name=
"debug_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${path}/logback_debug.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<fileNamePattern>
${path}/logback_debug.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property
name=
"LOG_HOME"
value=
"${system.log.path:-logs}"
/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<
pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
<
/pattern
>
<
Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<
charset>
UTF-8
</charset>
<!-- 设置字符集 --
>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
DEBUG
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<appender
name=
"
info_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<fil
e>
${path}/logback_info.log
</file
>
<appender
name=
"
SYSTEM_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 --
>
<fil
ter
class=
"com.github.wxiaoqi.security.common.filter.DenyFilter"
></filter
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<fileNamePattern>
${path}/logback_info.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<FileNamePattern>
${LOG_HOME}/sys.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
</rollingPolicy>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
INFO
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<appender
name=
"
warn_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<fil
e>
${path}/logback_warn.log
</file
>
<appender
name=
"
WEB_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 按照每天生成日志文件 --
>
<fil
ter
class=
"com.github.wxiaoqi.security.common.filter.AcceptFilter"
></filter
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<fileNamePattern>
${path}/logback_warn.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<FileNamePattern>
${LOG_HOME}/log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件输出的文件名 -->
<MaxHistory>
30
</MaxHistory>
<!--日志文件保留天数 -->
</rollingPolicy>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
WARN
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<appender
name=
"error_file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${path}/logback_error.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天一归档 -->
<fileNamePattern>
${path}/logback_error.log.%d{yyyy-MM-dd}-%i.zip
</fileNamePattern>
<maxHistory>
${maxHistory}
</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
${maxFileSize}
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>
%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
ERROR
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<root>
<level
value=
"info"
/>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"debug_file"
/>
<appender-ref
ref=
"info_file"
/>
<appender-ref
ref=
"warn_file"
/>
<appender-ref
ref=
"error_file"
/>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/ImApplication.java
View file @
300d89fd
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.im;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
...
...
@@ -22,6 +23,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableCaching
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.im.mapper"
)
public
class
ImApplication
{
...
...
xx-im/xx-im-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/OrderApplication.java
View file @
300d89fd
...
...
@@ -3,8 +3,7 @@ package com.xxfc.platform.order;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.spring4all.swagger.EnableSwagger2Doc
;
import
org.mybatis.spring.annotation.MapperScan
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
...
@@ -21,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.order.mapper"
)
public
class
OrderApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
View file @
300d89fd
...
...
@@ -63,7 +63,7 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
if
(
RefundStatusEnum
.
NONE
.
getCode
().
equals
(
orderMQDTO
.
getRefundStatus
()))
{
OrderVehicleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicleCrosstown
(){{
setOrderId
(
orderMQDTO
.
getId
());
setType
(
CrosstownTypeEnum
.
TOUR
.
getCode
());
setType
(
CrosstownTypeEnum
.
ARRIVE
.
getCode
());
}});
//还车扣除款 剩余的 钱,再减去违章预备金
BigDecimal
refundAmont
=
crosstown
.
getRestDeposit
().
subtract
(
illegalReserve
);
...
...
xx-order/xx-order-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/TourApplication.java
View file @
300d89fd
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.tour;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cache.annotation.EnableCaching
;
...
...
@@ -27,6 +28,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security.auth.client.feign"
,
"com.github.wxiaoqi.security.admin.feign"
,
"com.xxfc.platform"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@EnableCaching
@AddBasicConfiguration
@MapperScan
(
basePackages
=
"com.xxfc.platform.tour.mapper"
)
public
class
TourApplication
{
...
...
xx-tour/xx-tour-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/UniversalApplication.java
View file @
300d89fd
...
...
@@ -3,7 +3,7 @@ package com.xxfc.platform.universal;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
org.mybatis.spring.annotation.MapperSca
n
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguratio
n
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
...
...
@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableScheduling
@EnableAceCache
@EnableTransactionManagement
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.universal.mapper"
)
@EnableFeignClients
(
value
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security"
},
defaultConfiguration
=
HeaderConfig
.
class
)
public
class
UniversalApplication
{
...
...
xx-universal/xx-universal-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/VehicleApplication.java
View file @
300d89fd
...
...
@@ -3,11 +3,11 @@ package com.xxfc.platform.vehicle;
import
com.ace.cache.EnableAceCache
;
import
com.github.wxiaoqi.security.api.vo.config.HeaderConfig
;
import
com.github.wxiaoqi.security.auth.client.EnableAceAuthClient
;
import
com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
@SpringBootApplication
(
scanBasePackages
=
{
...
...
@@ -21,6 +21,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAceAuthClient
@EnableFeignClients
(
value
=
{
"com.github.wxiaoqi.security"
,
"com.xxfc.platform.vehicle.feign"
},
defaultConfiguration
=
HeaderConfig
.
class
)
@EnableAceCache
@AddBasicConfiguration
@tk
.
mybatis
.
spring
.
annotation
.
MapperScan
(
basePackages
=
"com.xxfc.platform.vehicle.mapper"
)
public
class
VehicleApplication
{
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/logback.xml
View file @
300d89fd
...
...
@@ -11,6 +11,7 @@
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--1. 输出到控制台-->
<filter
class=
"com.github.wxiaoqi.security.common.filter.NacosLogFilter"
></filter>
<encoder>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
...
...
@@ -39,16 +40,6 @@
</encoder>
</appender>
<appender
name=
"LOGSTASH"
class=
"net.logstash.logback.appender.LogstashTcpSocketAppender"
>
<destination>
192.168.0.181:5044
</destination>
<encoder
charset=
"UTF-8"
class=
"net.logstash.logback.encoder.LogstashEncoder"
>
<!--"appname":"springboot21-log-elk" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段
在logstashindex中引入 index => "%{[appname]}-%{+YYYY.MM.dd}"-->
<customFields>
{"appName":"elk-log-service-gateway-dev"}
</customFields>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"STDOUT"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment