修改系统过滤器

This commit is contained in:
WenG 2021-04-22 23:29:58 +08:00
parent f3c5d8a686
commit 18f591664b
7 changed files with 89 additions and 36 deletions

View File

@ -34,6 +34,7 @@ public class CountGlobalFilter implements GlobalFilter, Ordered {
System.out.println("uri: " + uri); System.out.println("uri: " + uri);
System.out.println("count: "+ count.getAndAdd(1)); System.out.println("count: "+ count.getAndAdd(1));
System.out.println(); System.out.println();
return chain.filter(exchange); return chain.filter(exchange);
// return exchange.getResponse().setComplete(); // return exchange.getResponse().setComplete();
} }

View File

@ -1,10 +1,9 @@
package ink.wgink.gateway.config; package ink.wgink.gateway.filter.wg;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain; import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
/** /**
@ -18,23 +17,15 @@ import reactor.core.publisher.Mono;
* @Version: 1.0 * @Version: 1.0
*/ */
@Configuration @Configuration
public class WebFluxFilterConfig implements WebFilter { public class WebFluxFilter implements WebFilter {
public static final String SESSION_USER = "SESSION_USER";
@Override @Override
public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) { public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) {
serverWebExchange.getRequest().getHeaders().forEach((k, list) -> { serverWebExchange.getSession().filter(webSession -> webSession.getAttributes().get(SESSION_USER) == null).then();
System.out.println(k); serverWebExchange.getRequest().mutate().path("").build();
list.forEach(System.out::println);
});
return webFilterChain.filter(serverWebExchange); return webFilterChain.filter(serverWebExchange);
} }
public static void main(String[] args) {
Flux.just("你好1", "你好2").subscribe(c -> {
System.out.println(c);
});
Mono.just("1").subscribe(System.out::println);
}
} }

View File

@ -0,0 +1,21 @@
layui.define(function(exports) {
var pathRegex = function(value) {
if(/^\/[^\s]+/.test(value)) {
return true;
}
return false;
}
var uriRegex = function(value) {
if(/(^#)|(^http(s*):\/\/[^\s]+)/.test(value)) {
return true;
}
return false;
}
exports('regex', {
path: pathRegex,
uri: uriRegex
})
});

View File

@ -34,9 +34,7 @@
<div class="iframe-breadcrumb-box"> <div class="iframe-breadcrumb-box">
<span class="layui-breadcrumb"> <span class="layui-breadcrumb">
<a href="">首页</a> <a href="">首页</a>
<a href="">国际新闻</a> <a><cite>路由映射</cite></a>
<a href="">亚太地区</a>
<a><cite>正文</cite></a>
</span> </span>
</div> </div>
<div class="iframe-box"> <div class="iframe-box">

View File

@ -16,12 +16,14 @@
<div class="layui-inline"> <div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字"> <input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div> </div>
<button type="button" id="search" class="layui-btn"> <div class="layui-btn-group">
<i class="fa fa-lg fa-search"></i> 搜索 <button type="button" id="search" class="layui-btn layui-btn-sm">
</button> <i class="fa fa-lg fa-search"></i> 搜索
<button type="button" id="refresh" class="layui-btn"> </button>
<i class="fa fa-lg fa-refresh"></i> 刷新路由 <button type="button" id="refresh" class="layui-btn layui-btn-normal layui-btn-sm">
</button> <i class="fa fa-lg fa-refresh"></i> 刷新路由
</button>
</div>
</div> </div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table> <table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 --> <!-- 表头按钮组 -->
@ -43,7 +45,9 @@
</div> </div>
<script src="assets/layui-v2.6.4/layui/layui.js"></script> <script src="assets/layui-v2.6.4/layui/layui.js"></script>
<script> <script>
layui.use(['layer', 'table'], function () { layui.config({
base: 'assets/layui-v2.6.4/layui/modules/'
}).extend({}).use(['layer', 'table'], function () {
var $ = layui.$; var $ = layui.$;
var $win = $(window); var $win = $(window);
var layer = layui.layer; var layer = layui.layer;
@ -161,11 +165,23 @@
initTable(1); initTable(1);
}); });
$(document).on('click', '#refresh', function() { $(document).on('click', '#refresh', function() {
top.restAjax.get(top.restAjax.path('api/route/refresh', []), {}, null, function(code, data) { top.dialog.msg('确定更新全部映射?', {
top.dialog.msg('刷新成功') time: 0,
}, function(code, data) { btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
top.dialog.msg(data.msg); shade: 0.3,
}) yes: function (index) {
var layIndex = null;
top.restAjax.get(top.restAjax.path('api/route/refresh', []), {}, null, function(code, data) {
top.dialog.msg('刷新成功')
}, function(code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg('正在更新', {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
})
}
});
}); });
// 删除 // 删除

View File

@ -35,14 +35,14 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">映射路径</label> <label class="layui-form-label">映射路径</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="path" class="layui-input" lay-verify="required" placeholder="请输入映射路径"> <input type="text" name="path" class="layui-input" lay-verify="required|path" placeholder="请输入映射路径">
<div class="layui-form-mid layui-word-aux">直接访问网关的路径,支持通配符,路径中的变量用{}包含,如/p1/**/p2/{pq1}/{pq2}</div> <div class="layui-form-mid layui-word-aux">直接访问网关的路径,支持通配符,路径中的变量用{}包含,如/p1/**/p2/{pq1}/{pq2}</div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">被映射服务</label> <label class="layui-form-label">被映射服务</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="uri" class="layui-input" lay-verify="required" placeholder="请输入服务地址"> <input type="text" name="uri" class="layui-input" lay-verify="required|uri" placeholder="请输入服务地址">
<div class="layui-form-mid layui-word-aux">需要映射的服务器uri路径如http://127.0.0.1:8080</div> <div class="layui-form-mid layui-word-aux">需要映射的服务器uri路径如http://127.0.0.1:8080</div>
</div> </div>
</div> </div>
@ -60,10 +60,13 @@
</div> </div>
<script src="assets/layui-v2.6.4/layui/layui.js"></script> <script src="assets/layui-v2.6.4/layui/layui.js"></script>
<script> <script>
layui.use(['form', 'laydate', 'laytpl'], function(){ layui.config({
base: 'assets/layui-v2.6.4/layui/modules/'
}).extend({}).use(['form', 'laydate', 'laytpl', 'regex'], function(){
var $ = layui.$; var $ = layui.$;
var form = layui.form; var form = layui.form;
var layer = layui.layer; var layer = layui.layer;
var regex = layui.regex;
var uuid = top.restAjax.params(window.location.href).uuid; var uuid = top.restAjax.params(window.location.href).uuid;
function closeBox() { function closeBox() {
@ -110,6 +113,16 @@
// 校验 // 校验
form.verify({ form.verify({
uri: function(value, item) {
if(!regex.uri(value)) {
return '链接格式不正确'
}
},
path: function(value, item) {
if(!regex.path(value)) {
return '路径格式不正确'
}
}
}); });
}); });
</script> </script>

View File

@ -35,14 +35,14 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">映射路径</label> <label class="layui-form-label">映射路径</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="path" class="layui-input" lay-verify="required" placeholder="请输入映射路径"> <input type="text" name="path" class="layui-input" lay-verify="required|path" placeholder="请输入映射路径">
<div class="layui-form-mid layui-word-aux">直接访问网关的路径,支持通配符,路径中的变量用{}包含,如/p1/**/p2/{pq1}/{pq2}</div> <div class="layui-form-mid layui-word-aux">直接访问网关的路径,支持通配符,路径中的变量用{}包含,如/p1/**/p2/{pq1}/{pq2}</div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">被映射服务</label> <label class="layui-form-label">被映射服务</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="uri" class="layui-input" lay-verify="required" placeholder="请输入服务地址"> <input type="text" name="uri" class="layui-input" lay-verify="required|uri" placeholder="请输入服务地址">
<div class="layui-form-mid layui-word-aux">需要映射的服务器uri路径如http://127.0.0.1:8080</div> <div class="layui-form-mid layui-word-aux">需要映射的服务器uri路径如http://127.0.0.1:8080</div>
</div> </div>
</div> </div>
@ -60,10 +60,13 @@
</div> </div>
<script src="assets/layui-v2.6.4/layui/layui.js"></script> <script src="assets/layui-v2.6.4/layui/layui.js"></script>
<script> <script>
layui.use(['form', 'laydate', 'laytpl'], function(){ layui.config({
base: 'assets/layui-v2.6.4/layui/modules/'
}).extend({}).use(['form', 'laydate', 'laytpl', 'regex'], function(){
var $ = layui.$; var $ = layui.$;
var form = layui.form; var form = layui.form;
var layer = layui.layer; var layer = layui.layer;
var regex = layui.regex;
var uuid = top.restAjax.params(window.location.href).uuid; var uuid = top.restAjax.params(window.location.href).uuid;
function closeBox() { function closeBox() {
@ -125,6 +128,16 @@
// 校验 // 校验
form.verify({ form.verify({
uri: function(value, item) {
if(!regex.uri(value)) {
return '链接格式不正确'
}
},
path: function(value, item) {
if(!regex.path(value)) {
return '路径格式不正确'
}
}
}); });
}); });
</script> </script>