@PreAuth问题

Blade 未结 2 188
QQ895623
QQ895623 剑侠 2025-08-22 10:11

加在controller上的@PreAuth和加在方法上的,同时存在,哪个生效?

比如这个加在controller上的,仅限admin账户

``B%]6K[S[F{K[[1%XCF{J9.jpg

下面方法加了所有用户均可访问,哪个生效?

98]K8KW91O2}Y]VRROWMKX8.png

2条回答
  • 2025-08-22 10:16

    另外,如果是controller上的生效,那我如何在下面的方法上单独设置一下呢,总不能把controller上的去掉,然后在下面其他的方法都加@IsAdmin,唯独我要放开的方法设置上@PreAuth(AuthConstant.PERMIT_ALL)?

    0 讨论(0)
  • 2025-08-22 10:37

    如果都用 @PreAuth注解,方法上的配置优先。

    如果用了 @IsAdmin 注解 和 @PreAuth 注解,则会走交集,因为是两个不同的切面。

    这么设计就是为了杜绝后续误操作风险,你无法保证未来某个员工是不是会误操作给重要接口放行结果导致系统数据泄漏。

    现在两个注解分开后,类层级配置 @IsAdmin ,方法配置 @PreAuth 不论怎样都是不会被覆盖的了,保证了系统的安全性。

    CleanShot20250822103712@2x.png


    你的场景如果要单独对个别放行,建议给需要放行的接口单开一个controller,或者就是每个方法都加上权限注解。

    0 讨论(0)
提交回复