白名单
2.4.1什么是白名单
问题:所有请求都被阻止,与实际需求不匹配。 (有部分要求不需要监听)
白名单:用于存储不需要监听的请求路径
2.4.3实现
步骤1 :修改网关yml文件并配置不需要监听的路径(白名单)
步骤2 :创建包含yml中自定义配置信息的配置类
步骤3 )完善网关滤波器,修改第三种方法,列入白名单放行,不进行监听。
修改步骤1 (==网关==yml文件,配置不需要监听的路径(白名单)
可能存在多个路径,需要用yml配置集合
#配置1个
a:
b:
c: abc
#构成组
a:
b:
c:
- abc
- aaa
- bbb
#自定义数据
sc:
jwt:
secret : sc @ log in (auth ) * ^ 31 ) czxy% #登录验证密钥
公共路径: d :/RSA/RSA.pub #公钥地址
prikey path : d :/RSA/RSA.pri #私钥地址
expire: 360 #有效期限,单位
过滤器:
allowPaths:
- /checkusername
- /checkmobile
- /短信
- /register
- /login
- /验证代码
- /categorys
- /news
- /brands
- /规范s
- /search
- /goods
- /comments
步骤2 :创建包含yml中自定义配置信息的配置类
package com.czxy.Chang Gou3. config;
import lombok.Data;
importorg.spring framework.boot.context.properties.configuration properties;
importorg.spring framework.stereotype.com ponent;
import java.util.List;
//*
* Created by liangtong。
*/
[ @ component ] (3359 my.oschina.net/u/3907912 )传递给了spring容器
@ configuration properties (prefix=' sc.filter ' ) ) )。
[ @ data ] 653359 my.oschina.net/dif rik (/getter和setter
公共类过滤器属性{
private List allowPaths;
}
实施:
~~~java
[ @ resource ] 65https://my.oschina.net/u/929718 ]
权限文件属性文件属性;
@Override
public boolean shouldFilter () /是否进行过滤,返回值true为run ); 返回值false表示不执行run ()
//如果当前请求路径与“白名单”路径匹配,则返回假,否则返回真
//1收到请求
//1.1获取上下文对象
requestcontextcurrentcontext=request context.getcurrentcontext ()
//1.2获得请求方
htpservletrequestrequest=current context.getrequest (;
//1.3获取途径
//uri :统一资源标识符(部分路径),/v3/cgweb service/user/check username
//system.out.println (request.getrequest uri () );
//URL:uniformresourcelocalhost :10010/v3/cgweb service/user/check username,3358localhost
//system.out.println (request.getrequest URL () );
stringrequesturi=request.getrequest uri (;
//2获得白名单路径
listallowpaths=filter properties.getallowpaths (;
//3路径匹配、请求路径、【包含】配置路径
字符串路径:允许路径{ for }
请求uri.contains (path ) }
返回假;
}
}
//其他路径必须运行run ()
返回真;
}