主题
接口响应数据加密
场景
登录后,返回接口数据进行加密。
一、网关配置
警告
网关不需要任何代码开发,只需要按照如下配置。
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
response-encrypt:
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 "{ \"accountNo\": \"admin\", \"password\": \"123456\"}"
2.2 接口返回结果
警告
对data
数据进行解密。参考配置
json
{
"code": 0,
"data": "ZhOU7v4na0uXBMCdaYm7ASt3UJ6qqLFYlUyX4xeZZoweNvwUMB6BYy1dBlJgpsEFIjm+uF205ipgmOSAbGB/Ow==",
"encrypt": true,
"successful": true
}
解密后字符串
json
{"authorization":"demo:1:84794681464ff2e98cf166e9f4e33397"}