Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢捷峰
discovery
Commits
0ca447f3
Commit
0ca447f3
authored
Jun 22, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加XML解析判断
parent
2fa4c43e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
15 deletions
+38
-15
discovery-plugin/src/main/java/com/nepxion/discovery/plugin/strategy/FilterStrategy.java
+5
-3
discovery-plugin/src/main/java/com/nepxion/discovery/plugin/strategy/VersionStrategy.java
+8
-10
discovery-springcloud-example-a/src/main/resources/discovery1.xml
+1
-1
discovery-springcloud-example-a/src/main/resources/discovery2.xml
+1
-1
discovery-springcloud-example-a/src/main/resources/discovery4.xml
+23
-0
No files found.
discovery-plugin/src/main/java/com/nepxion/discovery/plugin/strategy/FilterStrategy.java
View file @
0ca447f3
...
...
@@ -30,12 +30,14 @@ public class FilterStrategy {
Map
<
String
,
String
>
filterMap
=
filterEntity
.
getFilterMap
();
String
filterValue
=
filterMap
.
get
(
serviceId
);
if
(
StringUtils
.
isNotEmpty
(
filterValue
))
{
validate
(
filterValue
,
ipAddress
);
}
validate
(
filterValue
,
ipAddress
);
}
private
void
validate
(
String
filterValue
,
String
ipAddress
)
{
if
(
StringUtils
.
isEmpty
(
filterValue
))
{
return
;
}
String
[]
filterArray
=
StringUtils
.
split
(
filterValue
,
DiscoveryPluginConstant
.
SEPARATE
);
for
(
String
filter
:
filterArray
)
{
if
(
ipAddress
.
startsWith
(
filter
))
{
...
...
discovery-plugin/src/main/java/com/nepxion/discovery/plugin/strategy/VersionStrategy.java
View file @
0ca447f3
...
...
@@ -40,16 +40,14 @@ public class VersionStrategy {
if
(
consumerEntity
!=
null
)
{
Map
<
String
,
String
>
providerMap
=
consumerEntity
.
getProviderMap
();
String
version
=
providerMap
.
get
(
providerServiceId
);
if
(
StringUtils
.
isNotEmpty
(
version
))
{
String
[]
versionArray
=
StringUtils
.
split
(
version
,
DiscoveryPluginConstant
.
SEPARATE
);
List
<
String
>
versionList
=
Arrays
.
asList
(
versionArray
);
Iterator
<
ServiceInstance
>
iterator
=
instances
.
iterator
();
while
(
iterator
.
hasNext
())
{
ServiceInstance
serviceInstance
=
iterator
.
next
();
String
metaDataVersion
=
serviceInstance
.
getMetadata
().
get
(
DiscoveryPluginConstant
.
EUREKA_METADATA_VERSION
);
if
(!
versionList
.
contains
(
metaDataVersion
))
{
iterator
.
remove
();
}
String
[]
versionArray
=
StringUtils
.
split
(
version
,
DiscoveryPluginConstant
.
SEPARATE
);
List
<
String
>
versionList
=
Arrays
.
asList
(
versionArray
);
Iterator
<
ServiceInstance
>
iterator
=
instances
.
iterator
();
while
(
iterator
.
hasNext
())
{
ServiceInstance
serviceInstance
=
iterator
.
next
();
String
metaDataVersion
=
serviceInstance
.
getMetadata
().
get
(
DiscoveryPluginConstant
.
EUREKA_METADATA_VERSION
);
if
(!
versionList
.
contains
(
metaDataVersion
))
{
iterator
.
remove
();
}
}
}
...
...
discovery-springcloud-example-a/src/main/resources/discovery1.xml
View file @
0ca447f3
...
...
@@ -14,7 +14,7 @@
<!-- service-name,表示服务名 -->
<!-- version-value,表示可供访问的版本,如果多个用“;”分隔 -->
<version>
<!-- 表示消费端服务a,允许访问提供端服务b的1.0
和1.1
版本-->
<!-- 表示消费端服务a,允许访问提供端服务b的1.0版本-->
<consumer
service-name=
"discovery-springcloud-example-a"
>
<provider
service-name=
"discovery-springcloud-example-b"
version-value=
"1.0"
/>
</consumer>
...
...
discovery-springcloud-example-a/src/main/resources/discovery2.xml
View file @
0ca447f3
...
...
@@ -14,7 +14,7 @@
<!-- service-name,表示服务名 -->
<!-- version-value,表示可供访问的版本,如果多个用“;”分隔 -->
<version>
<!-- 表示消费端服务a,允许访问提供端服务b的1.
0和1.
1版本-->
<!-- 表示消费端服务a,允许访问提供端服务b的1.1版本-->
<consumer
service-name=
"discovery-springcloud-example-a"
>
<provider
service-name=
"discovery-springcloud-example-b"
version-value=
"1.1"
/>
</consumer>
...
...
discovery-springcloud-example-a/src/main/resources/discovery4.xml
0 → 100644
View file @
0ca447f3
<?xml version="1.0" encoding="UTF-8"?>
<discovery>
<!-- 服务注册的黑/白名单过滤。白名单表示只允许指定IP地址前缀注册,黑名单表示不允许指定IP地址前缀注册。每个服务只能同时开启要么白名单,要么黑名单 -->
<!-- filter-type,可选值BLACKLIST/WHITELIST,表示白名单或者黑名单 -->
<!-- service-name,表示服务名 -->
<!-- filter-value,表示黑/白名单的IP地址列表。IP地址一般用前缀来表示,如果多个用“;”分隔 -->
<!-- 表示下面所有服务,不允许10.10和11.11为前缀的IP地址注册(全局过滤) -->
<filter
filter-type=
"BLACKLIST"
filter-value=
"10.10;11.11"
>
<!-- 表示下面服务,不允许172.16和10.10和11.11为前缀的IP地址注册 -->
<service
service-name=
"discovery-springcloud-example"
filter-value=
"172.16"
/>
</filter>
<!-- 服务注册下,服务多版本调用的控制 -->
<!-- service-name,表示服务名 -->
<!-- version-value,表示可供访问的版本,如果多个用“;”分隔 -->
<version>
<!-- 表示消费端服务a,不允许访问提供端服务b的任何版本-->
<consumer
service-name=
"discovery-springcloud-example-a"
>
<provider
service-name=
"discovery-springcloud-example-b"
version-value=
""
/>
</consumer>
</version>
</discovery>
\ 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