Spring cloud微服务安全实战-3-9API安全机制之审计日志_batch
首先说一下审计日志的处理。审计日志处理的位置,应该是在认证之后,授权之前。因为只有你在认证之后,你才能知道这个请求到底是谁发出来的,谁在做这个事情。在这个授权之前,这样的话那些被拒绝掉的请求。在响应的时候你才可以把他记下来。 日志一定要持久化,可以把它存到数据库里,也可以把它写到文件里。 怎么保证过滤器按照顺序执行的,我们在做流控和认证的过滤器的时候,实际上,并没有指定的顺序。那么现在到底是流控先执行 还是认证先执行? 在流控的Filter先打印一个1 在认证的Filter里面 我们再打一个2 发送请求 发现先输出了2 后输出了1。说明先走的认证 再走的流控 调整Filter的执行顺序 认证在第二个 就写个@Order(2) 重启服务进行测试 审计日志-简单实现 审计日志不能用filter来做了。因为审计日志我们要做两个动作。第一个是在请求进来后,我们要做一个动作。然后在请求出去之后,要把这个日志更新一下,所以进和出都要做事。如果只在请求进来记录 实际上不知道最终这个请求最终是成功了还是失败了。这样这个日志记录不完整。 如果用Filter来做,它只有一个doFilterInternal这么个方法,它是标准的Filter方法的实现,并没有明确的区分在请求进来执行还是请求出去的时候执行。 我们使用SpringBoot提供的Interceptor。