权限控制简单介绍
在我们之前的20篇关于SpringSecurity的笔记中,较详细的介绍了SpringSecurity关于认证的内容,接下来我们会讲一下关于授权的内容。
认证是指:你有一个家,你可以进行控制让谁能进来,比如你的家人,谁进不来比如陌生人,这就是认证。
授权是指:你的家人进到你家可以做什么事,比如你姑姑姨姨就不能随便翻你的东西,打开保险柜,而你的妻子就可以,这就是授权。
对于我们开发应用的授权有一定经验的都知道,基本适用于后台管理系统,不同职位的人有不同的操作权限,比如人事就有添加员工的权限,财务有设置工资的权限,领导有审批请假的权限等等。
那么一般情况下,如何控制授权呢?这里不止SpringSecurity
如图,系统应该有两部分信息
- 系统配置:哪些路径需要哪些权限才可以访问,比如添加用户需要A权限,审批需要B权限
- 用户权限配置:哪些用户具有哪些权限,比如人事有A权限但是没有B权限,领导既有A还有B权限
当请求发过来的时候,会先根据系统配置看看这个请求是否需要某个权限才能访问,如果有,再判断用户是否有这个权限,有才能访问。
SpringSecurity简单权限控制
对于某些URL,只有某些权限的用户才能访问,这种逻辑直接写死在代码里,从技术实现上来说很简单,但真实项目中应该很少会这样用,但本文仍主要来演示一下具体的代码实现。
首先我们把demo
项目改为引用browser
然后我们看一下之前的代码:
可以看到,这些都是和认证有关的,关于授权就是.permitAll()
,意思是这些请求返回True
,对于其他的授权控制代码也类似,如下: