Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
byit-myth-job
Overview
Overview
Details
Activity
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
liyuan
byit-myth-job
Commits
54cbd841
Commit
54cbd841
authored
Mar 23, 2020
by
guominglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改解析返回实体问题
parent
53e1ccce
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
104 additions
and
110 deletions
+104
-110
pom.xml
byit-myth-admin/pom.xml
+0
-4
pom.xml
byit-myth-core/myth-web-core/pom.xml
+2
-2
ResponseAdvice.java
...ore/src/main/java/com/byit/web/advice/ResponseAdvice.java
+7
-11
LoginFilter.java
...y/src/main/java/com/byit/gateway/filters/LoginFilter.java
+5
-5
ZuulRouteDatabaseLocator.java
.../java/com/byit/gateway/zuul/ZuulRouteDatabaseLocator.java
+3
-1
ZuulRouteLocator.java
...src/main/java/com/byit/gateway/zuul/ZuulRouteLocator.java
+87
-87
No files found.
byit-myth-admin/pom.xml
View file @
54cbd841
...
...
@@ -18,10 +18,6 @@
<artifactId>
myth-admin-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
...
...
byit-myth-core/myth-web-core/pom.xml
View file @
54cbd841
...
...
@@ -17,8 +17,8 @@
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-
webmvc
</artifactId>
<groupId>
org.springframework
.boot
</groupId>
<artifactId>
spring-
boot-starter-web
</artifactId>
</dependency>
</dependencies>
...
...
byit-myth-core/myth-web-core/src/main/java/com/byit/web/advice/ResponseAdvice.java
View file @
54cbd841
...
...
@@ -6,7 +6,6 @@ import org.springframework.core.MethodParameter;
import
org.springframework.http.MediaType
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
;
...
...
@@ -17,17 +16,14 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
* @date: 2019/12/25 16:57
**/
@RestControllerAdvice
public
class
ResponseAdvice
implements
ResponseBodyAdvice
{
public
class
ResponseAdvice
implements
ResponseBodyAdvice
<
Object
>
{
@Override
public
boolean
supports
(
MethodParameter
methodParameter
,
Class
aClass
)
{
if
(
aClass
.
isAnnotationPresent
(
RestController
.
class
)){
return
true
;
}
return
false
;
return
true
;
}
/**
*
* @param
res
返回结果
* @param
body
返回结果
* @param methodParameter 方法参数
* @param mediaType
* @param aClass
...
...
@@ -36,11 +32,11 @@ public class ResponseAdvice implements ResponseBodyAdvice {
* @return
*/
@Override
public
Object
beforeBodyWrite
(
Object
res
,
MethodParameter
methodParameter
,
MediaType
mediaType
,
Class
aClass
,
ServerHttpRequest
serverHttpRequest
,
ServerHttpResponse
serverHttpResponse
)
{
if
(!(
res
instanceof
ResponseResult
)
){
return
JSON
.
toJSONString
(
ResponseResult
.
ok
(
res
))
;
public
Object
beforeBodyWrite
(
Object
body
,
MethodParameter
methodParameter
,
MediaType
mediaType
,
Class
aClass
,
ServerHttpRequest
serverHttpRequest
,
ServerHttpResponse
serverHttpResponse
)
{
if
(
body
instanceof
ResponseResult
){
return
body
;
}
return
res
;
return
JSON
.
toJSONString
(
ResponseResult
.
ok
(
body
))
;
}
...
...
byit-myth-gateway/src/main/java/com/byit/gateway/filters/LoginFilter.java
View file @
54cbd841
...
...
@@ -39,15 +39,15 @@ public class LoginFilter extends ZuulFilter {
public
Object
run
()
{
RequestContext
ctx
=
RequestContext
.
getCurrentContext
();
HttpServletRequest
request
=
ctx
.
getRequest
();
log
.
info
(
String
.
format
(
"%s request to %s"
,
request
.
getMethod
(),
request
.
getRequestURL
().
toString
()));
Object
a
=
request
.
getParameter
(
"a"
);
if
(
a
!=
null
)
{
log
.
info
(
"{} request from {}"
,
request
.
getMethod
(),
request
.
getRemoteAddr
());
log
.
info
(
"{} request to {}"
,
request
.
getMethod
(),
request
.
getRequestURL
().
toString
());
String
token
=
request
.
getHeader
(
"token"
);
if
(
null
==
token
||
""
.
equals
(
token
))
{
log
.
warn
(
"param a is empty"
);
ctx
.
setSendZuulResponse
(
false
);
ctx
.
setResponseStatusCode
(
40
1
);
ctx
.
setResponseStatusCode
(
40
3
);
return
false
;
}
log
.
info
(
"param a is : "
+
a
);
return
true
;
}
}
byit-myth-gateway/src/main/java/com/byit/gateway/zuul/ZuulRouteDatabaseLocator.java
View file @
54cbd841
...
...
@@ -34,6 +34,8 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
private
String
biz
;
@Value
(
"${gateway.load.balance}"
)
private
String
gatewayLoadBalance
;
@Value
(
"${myth-rpc.registry.env}"
)
private
String
env
;
private
List
<
ZuulRouteEntity
>
locateRouteList
;
...
...
@@ -49,7 +51,7 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
public
Map
<
String
,
ZuulRoute
>
loadLocateRoute
()
{
locateRouteList
=
new
ArrayList
<>();
try
{
String
sql
=
"select * from myth_registry where status = 0 and locate('.',`key`) = 0 and biz = '"
+
biz
+
"'"
;
String
sql
=
"select * from myth_registry where status = 0 and
env = '"
+
env
+
"' and
locate('.',`key`) = 0 and biz = '"
+
biz
+
"'"
;
List
<
Map
<
String
,
Object
>>
locateRouteMapList
=
jdbcTemplate
.
queryForList
(
sql
);
logger
.
info
(
locateRouteMapList
.
toString
());
...
...
byit-myth-gateway/src/main/java/com/byit/gateway/zuul/ZuulRouteLocator.java
View file @
54cbd841
...
...
@@ -20,94 +20,94 @@ import java.util.Map;
*/
public
abstract
class
ZuulRouteLocator
extends
SimpleRouteLocator
implements
RefreshableRouteLocator
{
private
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ZuulRouteLocator
.
class
);
private
ZuulProperties
properties
;
private
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ZuulRouteLocator
.
class
);
public
ZuulRouteLocator
(
String
servletPath
,
ZuulProperties
properties
)
{
super
(
servletPath
,
properties
);
this
.
properties
=
properties
;
logger
.
info
(
"servletPath:{}"
,
servletPath
);
}
@Override
public
void
refresh
()
{
doRefresh
();
}
@Override
protected
Map
<
String
,
ZuulRoute
>
locateRoutes
()
{
LinkedHashMap
<
String
,
ZuulRoute
>
routesMap
=
new
LinkedHashMap
<>();
// 从application.properties中加载路由信息
Map
<
String
,
ZuulRoute
>
locateRoutesMap
=
loadLocateRoute
();
if
(!
CollectionUtils
.
isEmpty
(
locateRoutesMap
))
{
routesMap
.
putAll
(
locateRoutesMap
);
}
// 优化一下配置
LinkedHashMap
<
String
,
ZuulRoute
>
values
=
new
LinkedHashMap
<>();
for
(
Map
.
Entry
<
String
,
ZuulRoute
>
entry
:
routesMap
.
entrySet
())
{
String
path
=
entry
.
getKey
();
// Prepend with slash if not already present.
if
(!
path
.
startsWith
(
"/"
))
{
path
=
"/"
+
path
;
}
if
(
StringUtils
.
hasText
(
this
.
properties
.
getPrefix
()))
{
path
=
this
.
properties
.
getPrefix
()
+
path
;
if
(!
path
.
startsWith
(
"/"
))
{
path
=
"/"
+
path
;
}
}
values
.
put
(
path
,
entry
.
getValue
());
}
return
values
;
}
/**
* 加载路由配置,由子类去实现
*/
public
abstract
Map
<
String
,
ZuulRoute
>
loadLocateRoute
();
private
ZuulProperties
properties
;
@Override
public
int
getOrder
()
{
return
-
1
;
}
/**
* 复制查询出来的数据的属性
*/
public
Map
<
String
,
ZuulRoute
>
handle
(
List
<
ZuulRouteEntity
>
locateRouteList
){
if
(
CollectionUtils
.
isEmpty
(
locateRouteList
)){
return
null
;
}
Map
<
String
,
ZuulRoute
>
routes
=
new
LinkedHashMap
<>();
for
(
ZuulRouteEntity
locateRoute
:
locateRouteList
)
{
if
(
StringUtils
.
isEmpty
(
locateRoute
.
getPath
())
||
!
locateRoute
.
isEnable
()
||
(
StringUtils
.
isEmpty
(
locateRoute
.
getUrl
())
&&
StringUtils
.
isEmpty
(
locateRoute
.
getServiceId
())))
{
continue
;
}
ZuulRoute
zuulRoute
=
new
ZuulRoute
();
try
{
//zuulRoute.setCustomSensitiveHeaders(locateRoute.isCustomSensitiveHeaders());
//zuulRoute.setSensitiveHeaders(locateRoute.getSensitiveHeadersSet());
//zuulRoute.setId(locateRoute.getId());
public
ZuulRouteLocator
(
String
servletPath
,
ZuulProperties
properties
)
{
super
(
servletPath
,
properties
);
this
.
properties
=
properties
;
logger
.
info
(
"servletPath:{}"
,
servletPath
);
}
@Override
public
void
refresh
()
{
doRefresh
();
}
@Override
protected
Map
<
String
,
ZuulRoute
>
locateRoutes
()
{
LinkedHashMap
<
String
,
ZuulRoute
>
routesMap
=
new
LinkedHashMap
<>();
// 从application.properties中加载路由信息
Map
<
String
,
ZuulRoute
>
locateRoutesMap
=
loadLocateRoute
();
if
(!
CollectionUtils
.
isEmpty
(
locateRoutesMap
))
{
routesMap
.
putAll
(
locateRoutesMap
);
}
// 优化一下配置
LinkedHashMap
<
String
,
ZuulRoute
>
values
=
new
LinkedHashMap
<>();
for
(
Map
.
Entry
<
String
,
ZuulRoute
>
entry
:
routesMap
.
entrySet
())
{
String
path
=
entry
.
getKey
();
// Prepend with slash if not already present.
if
(!
path
.
startsWith
(
"/"
))
{
path
=
"/"
+
path
;
}
if
(
StringUtils
.
hasText
(
this
.
properties
.
getPrefix
()))
{
path
=
this
.
properties
.
getPrefix
()
+
path
;
if
(!
path
.
startsWith
(
"/"
))
{
path
=
"/"
+
path
;
}
}
values
.
put
(
path
,
entry
.
getValue
());
}
return
values
;
}
/**
* 加载路由配置,由子类去实现
*/
public
abstract
Map
<
String
,
ZuulRoute
>
loadLocateRoute
();
@Override
public
int
getOrder
()
{
return
-
1
;
}
/**
* 复制查询出来的数据的属性
*/
public
Map
<
String
,
ZuulRoute
>
handle
(
List
<
ZuulRouteEntity
>
locateRouteList
)
{
if
(
CollectionUtils
.
isEmpty
(
locateRouteList
))
{
return
null
;
}
Map
<
String
,
ZuulRoute
>
routes
=
new
LinkedHashMap
<>();
for
(
ZuulRouteEntity
locateRoute
:
locateRouteList
)
{
if
(
StringUtils
.
isEmpty
(
locateRoute
.
getPath
())
||
!
locateRoute
.
isEnable
()
||
(
StringUtils
.
isEmpty
(
locateRoute
.
getUrl
())
&&
StringUtils
.
isEmpty
(
locateRoute
.
getServiceId
())))
{
continue
;
}
ZuulRoute
zuulRoute
=
new
ZuulRoute
();
try
{
//zuulRoute.setCustomSensitiveHeaders(locateRoute.isCustomSensitiveHeaders());
//zuulRoute.setSensitiveHeaders(locateRoute.getSensitiveHeadersSet());
//zuulRoute.setId(locateRoute.getId());
// zuulRoute.setLocation("");
zuulRoute
.
setId
(
locateRoute
.
getId
());
zuulRoute
.
setPath
(
locateRoute
.
getPath
());
//是否需要重试
zuulRoute
.
setRetryable
(
false
);
zuulRoute
.
setServiceId
(
locateRoute
.
getServiceId
());
//是否去掉前缀
zuulRoute
.
setStripPrefix
(
true
);
zuulRoute
.
setUrl
(
locateRoute
.
getUrl
());
logger
.
info
(
"add zuul route: "
+
JSON
.
toJSONString
(
zuulRoute
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"=============load zuul route info from db with error=============="
,
e
);
}
routes
.
put
(
zuulRoute
.
getPath
(),
zuulRoute
);
}
return
routes
;
}
zuulRoute
.
setId
(
locateRoute
.
getId
());
zuulRoute
.
setPath
(
locateRoute
.
getPath
());
//是否需要重试
zuulRoute
.
setRetryable
(
false
);
zuulRoute
.
setServiceId
(
locateRoute
.
getServiceId
());
//是否去掉前缀
zuulRoute
.
setStripPrefix
(
true
);
zuulRoute
.
setUrl
(
locateRoute
.
getUrl
());
logger
.
info
(
"add zuul route: "
+
JSON
.
toJSONString
(
zuulRoute
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"=============load zuul route info from db with error=============="
,
e
);
}
routes
.
put
(
zuulRoute
.
getPath
(),
zuulRoute
);
}
return
routes
;
}
}
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