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
56ccba07
Commit
56ccba07
authored
Aug 01, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
禁止了nacos日志频繁打印,添加了网关请求和响应日志,
parent
952e8cd1
Changes
38
Show whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
531 additions
and
319 deletions
+531
-319
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
-5
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
-14
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
-14
ActivityApplication.java
.../java/com/xxfc/platform/activity/ActivityApplication.java
+2
-0
logback.xml
...ctivity/xx-activity-server/src/main/resources/logback.xml
+1
-12
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
-12
CampSiteApplication.java
.../java/com/xxfc/platform/campsite/CampSiteApplication.java
+2
-1
logback.xml
...ampsite/xx-campsite-server/src/main/resources/logback.xml
+30
-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
-12
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
-12
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
-12
UniversalApplication.java
...ava/com/xxfc/platform/universal/UniversalApplication.java
+2
-1
logback.xml
...versal/xx-universal-server/src/main/resources/logback.xml
+1
-12
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
-12
No files found.
ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
View file @
56ccba07
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 @
952e8cd1
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 @
56ccba07
...
...
@@ -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,9 +40,8 @@
</encoder>
</appender>
<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
ace-common/pom.xml
View file @
56ccba07
...
...
@@ -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 @
56ccba07
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 @
56ccba07
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 @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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 @
56ccba07
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 @
56ccba07
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 @
56ccba07
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 @
56ccba07
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
<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>
...
...
ace-gate/src/main/java/com/github/wxiaoqi/security/gate/filter/AcceptFilter.java
deleted
100644 → 0
View file @
952e8cd1
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 @
56ccba07
...
...
@@ -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 @
952e8cd1
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 @
56ccba07
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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
View file @
56ccba07
...
...
@@ -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 @
952e8cd1
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 @
952e8cd1
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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/ActivityApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-app/xx-app-server/src/main/java/com/xxfc/platform/app/AppApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-campsite/xx-campsite-server/src/main/java/com/xxfc/platform/campsite/CampSiteApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
<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"
/>
</root>
</configuration>
\ No newline at end of file
xx-im/xx-im-server/src/main/java/com/xxfc/platform/im/ImApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/OrderApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-tour/xx-tour-server/src/main/java/com/xxfc/platform/tour/TourApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/UniversalApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/VehicleApplication.java
View file @
56ccba07
...
...
@@ -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 @
56ccba07
...
...
@@ -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,20 +40,8 @@
</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"
/>
<appender-ref
ref=
"SYSTEM_FILE"
/>
<appender-ref
ref=
"WEB_FILE"
/>
</root>
</configuration>
\ No newline at end of file
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