主题
接口请求数据加密
场景
对登录接口请求参数数据进行加密。
一、网关配置
警告
网关不需要任何代码开发,只需要按照如下配置。
yaml
logging:
file:
name: ./logs/gateway.log
max-history: 60
max-size: 100MB
level:
root: INFO
server :
port : 8080
spring:
cloud:
loadbalancer:
gateway:
discovery:
locator:
enabled: false
lowerCaseServiceId: true
routes:
#配置路径规则
- id: demo
uri: http://127.0.0.1:8081
predicates:
- Path=/demo/**
filters:
- StripPrefix= 1
data:
#配置redis
redis:
database: 9
host: 127.0.0.1
port: 6379
password: 123456
timeout: 3000
lettuce:
pool:
max-active: 100
max-wait: -1
max-idle: 10
min-idle: 0
wueasy :
gateway:
filter:
session:
enabled: true #启用session拦截器
items:
- type: redis #使用redis存储session信息
redis-auto-expire: true #启用会话自动延期
expire: PT1H #配置会话1小时过期
urls: #配置拦截的url地址,所有的/demo/请求都拦截
- /demo/**
user-login-urls: /demo/login #配置登录接口地址,需要和微服务调用的完全一致。
user-get-info-urls: /demo/getInfo #获取用户信息
security-visitor-urls: #配置免登陆接口地址
- /demo/login
- /demo/captcha
security-login-urls: #配置登录可访问的接口地址
- /demo/getInfo
request-decrypt:
enabled: true #启用请求数据解密拦截器
items:
- urls: /demo/login #配置拦截的url地址
secret: D5E5F589769DA629A2F8C344F4749C0A #加解密秘钥
二、请求接口
TIP
通过发起请求,获取接口信息。
2.1 发起请求示例
警告
请求时需要对请求参数进行加密,参考配置
shell
curl --location --request POST "http://127.0.0.1:8080/demo/login" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Content-Type: application/json" ^
--header "Accept: */*" ^
--header "Host: 127.0.0.1:8080" ^
--header "Connection: keep-alive" ^
--data-raw "{ \"data\": \"ocwQkfjo+zdiL9RJ6hk/F+D9CyJfFRlCPkxiWs3an/f97ri0w4gcXC9vEPenCf5YrRCgnxcf2PoWAH9XkTSGavtEljMliqTVf6S/uCtUsyAnTHUNvV4VpCItTXMvR4Lwnq2W+V4VC7OmaHrx4mn3LvI5OZf+LQEzwYt/3gLy9DnkcN6A3iHDdaJzbuo23zFVnViL3VZ40iYULFagE4TvLg==\"}"
2.2 接口返回结果
json
{
"code": 0,
"data": {
"authorization": "demo:1:80abbe59d33b3029bc4622476892279d"
},
"successful": true
}