API安全机制之审计日志

审计日志

审计日志处理的位置是在认证时候授权之前,认证之后记请求谁发出来的,授权之前那些被拒绝的请求可以被记载下来,日志需持久化,在实际开发中将日志发到统一的日志服务

解决流控、认证执行顺序问题

使用注解@Order来解决

使用spring拦截器来记录审计日志,其他还有Filter、ControllerAdvice、AOP的关系

spring调用顺序依次是filter(不是spring定义的,web规范里面定义的)->interceptor->controller advice(全局异常处理)->AOP

实例代码

编写audit_log实体

@Data
@Entity
@EntityListeners(AuditingEntityListener.class)
public class AuditLog {
   

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String method;
    private String path;
    private Integer status;
  	@CreatedBy
  	@LastModifiedBy
    private String username;
    @Temporal(TemporalType.TIMESTAMP)
    @CreatedDate
    private Date createTime;
    @Temporal(TemporalType.TIMESTAMP)
    @LastModifiedDate
    private Date updateTime;


}

注:时间使用@Temporal注解,并存储成时间戳

@CreatedDate、@LastModifiedDate,这两个注解用jpa去save的时候判断是创建时间还是更新时间并自动填充到库里面

开启jpa支持审计的功能,实体类auditlog增加一个监听器@EntityListeners实现的类是AuditingEntityListener,在增加一个@EnableJpaAuditing总开关,@CreatedBy这个注解是创建人是谁,@LastModifiedBy最后修改人是谁,单写这个注解不生效要想使之生效需要实现一个接口AuditorAware,是一个范型,返回一个String,当jps碰到@CreatedBy这个注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值