修改系统过滤器

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("count: "+ count.getAndAdd(1));
System.out.println();
return chain.filter(exchange);
// 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.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
/**
@ -18,23 +17,15 @@ import reactor.core.publisher.Mono;
* @Version: 1.0
*/
@Configuration
public class WebFluxFilterConfig implements WebFilter {
public class WebFluxFilter implements WebFilter {
public static final String SESSION_USER = "SESSION_USER";
@Override
public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) {
serverWebExchange.getRequest().getHeaders().forEach((k, list) -> {
System.out.println(k);
list.forEach(System.out::println);
});
serverWebExchange.getSession().filter(webSession -> webSession.getAttributes().get(SESSION_USER) == null).then();
serverWebExchange.getRequest().mutate().path("").build();
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">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">国际新闻</a>
<a href="">亚太地区</a>
<a><cite>正文</cite></a>
<a><cite>路由映射</cite></a>
</span>
</div>
<div class="iframe-box">

View File

@ -16,12 +16,14 @@
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<button type="button" id="search" class="layui-btn">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
<button type="button" id="refresh" class="layui-btn">
<i class="fa fa-lg fa-refresh"></i> 刷新路由
</button>
<div class="layui-btn-group">
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
<button type="button" id="refresh" class="layui-btn layui-btn-normal layui-btn-sm">
<i class="fa fa-lg fa-refresh"></i> 刷新路由
</button>
</div>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 -->
@ -43,7 +45,9 @@
</div>
<script src="assets/layui-v2.6.4/layui/layui.js"></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 $win = $(window);
var layer = layui.layer;
@ -161,11 +165,23 @@
initTable(1);
});
$(document).on('click', '#refresh', function() {
top.restAjax.get(top.restAjax.path('api/route/refresh', []), {}, null, function(code, data) {
top.dialog.msg('刷新成功')
}, function(code, data) {
top.dialog.msg(data.msg);
})
top.dialog.msg('确定更新全部映射?', {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
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">
<label class="layui-form-label">映射路径</label>
<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>
</div>
<div class="layui-form-item">
<label class="layui-form-label">被映射服务</label>
<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>
</div>
@ -60,10 +60,13 @@
</div>
<script src="assets/layui-v2.6.4/layui/layui.js"></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 form = layui.form;
var layer = layui.layer;
var regex = layui.regex;
var uuid = top.restAjax.params(window.location.href).uuid;
function closeBox() {
@ -110,6 +113,16 @@
// 校验
form.verify({
uri: function(value, item) {
if(!regex.uri(value)) {
return '链接格式不正确'
}
},
path: function(value, item) {
if(!regex.path(value)) {
return '路径格式不正确'
}
}
});
});
</script>

View File

@ -35,14 +35,14 @@
<div class="layui-form-item">
<label class="layui-form-label">映射路径</label>
<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>
</div>
<div class="layui-form-item">
<label class="layui-form-label">被映射服务</label>
<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>
</div>
@ -60,10 +60,13 @@
</div>
<script src="assets/layui-v2.6.4/layui/layui.js"></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 form = layui.form;
var layer = layui.layer;
var regex = layui.regex;
var uuid = top.restAjax.params(window.location.href).uuid;
function closeBox() {
@ -125,6 +128,16 @@
// 校验
form.verify({
uri: function(value, item) {
if(!regex.uri(value)) {
return '链接格式不正确'
}
},
path: function(value, item) {
if(!regex.path(value)) {
return '路径格式不正确'
}
}
});
});
</script>