目标:提供一个接口给第三方服务使用,但因为第三方服务没有用户账号这东西,所以需要进行安全访问控制(Java实现)
例如:http://XXXXX?nonce=XXXX?×tamp=XXXX&signature=XXXX (请求参数在POST里面)
步骤:
1.在filter中获取参数,验证是第三方服务调用
获取nonce、signature、timestamp、请求参数、四个参数,如果有即是第三方服务在调用接口,没有则将请求转发给下一个filter
2.检查请求的时效性
根据上面拿到的时间戳,判断请求是否过期
3.获取token
拿到对应服务的token
4.进行签名
1.将token、timestamp、nonce进行字典排序,作为签名的secret_key
2.将请求参数作为签名的内容,然后选择签名的方法
3.生成签名
5.验证签名
将生成的签名与第一个步骤获取的signature比较,相同即是合法操作
6.设置所信任的上下文
根据请求的数据,获取里面能作为设置凭证的参数,将此次请求设置为受信任的请求。