MySQL|Spring Security基于注解授权(十一)

MySQL|Spring Security基于注解授权(十一)

文章图片

MySQL|Spring Security基于注解授权(十一)

文章图片


前几篇文章介绍了基于角色和基于权限的方式进行授权 , 这两种方式都是直接在security的配置类中对需要访问的资源进行角色或者权限的设置 。
但是上面两种方式有些麻烦 , 假设我有100个url资源 , 那么就需要在配置类中添加100个权限设置代码 , url资源越多security配置类中就会越多的代码 , 非常不好维护 。 所以security为了简化这种权限设置方式 , security也支持通过注解的方式进行权限设置 。
一、基于注解授权(1)开启security注解
security框架中默认是没有开启注解使用的 , 所以需要自己手动开启security注解 , 开启方式如下所示:
在springboot启动类上面 , 使用注解【@EnableGlobalMethodSecurity】开启security注解使用 。

@EnableGlobalMethodSecurity注解有如下属性:

每一种注解属性的都有对应的使用方式 , 有些是通过角色 , 有些是通过权限判断 , 有些是在访问url方法之前判断权限 , 有些是在访问url方法之后判断权限 。 注解中使用最多的是@PreAuthorize , 该注解作用:在访问url对应的方法之前判断是否具有访问权限 。
(2)使用注解设置权限
开启注解后 , 在项目中就可以使用注解进行url权限设置 , 只需要在对应url的方法之前 , 使用注解@PreAuthorize进行权限设置即可 。

可以发现 , @PreAuthorize注解中的值就是将之前写在security配置类中的hasAuthority或者hasRole方法 , 这样就可以简化security配置类中的代码 , 之后有新增的url就只需要在对应的方法上面添加权限即可 。

启动工程 , 登录系统后 , 分别访问三个url , 可以发现依然能够正常进行权限的控制 , 到此就把基于注解进行权限控制的内容介绍完了 。
我们可以发现 , 当没有权限访问url的时候 , 系统都会默认跳转到一个403页面 , 这样的页面不太友好 , security允许用户自定义权限不足页面 。 下一篇文章介绍security框架自定义权限不足页面 。
【MySQL|Spring Security基于注解授权(十一)】这是我的第89篇文章 , 谢谢大家阅读 。