Security5实现鉴权访问【即有权限才能访问指定资源】前后端分离

发布于:2023-01-05 ⋅ 阅读:(493) ⋅ 点赞:(0)


全文中的/admin/all 权限皆是个人配置的,也可修改成其他的,该项是经过配置类进行配置,在springsecurity实现登录一文中进行了配置,看不懂的先考古,
如果在配置类中遍历的表和本文不一样,即如果表里的字段值为1,那么代表1是你的权限,如果其他用户的该表字段值不为1则不得访问该资源

🥇后端鉴权配置

✨我们要对接口进行鉴权配置,即用户拥有权限才能访问该接口

①开启鉴权配置

// Security配置类
@Configuration
// 开启鉴权配置注解
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter{    

}

②在需要鉴权的接口上方添加鉴权注解

@PreAuthorize("hasAnyAuthority('/admin/all')")    
public ModelAndView all(@RequestParam(defaultValue = "1") int page, 
						@RequestParam(defaultValue = "10") int size) {   

}

只有当用户拥有/admin/all的权限才能够访问

🥈前端鉴权配置

在开发中,如果用户没有权限,我们往往会将页面上的内容隐藏。
此时需要Thymeleaf整合Spring Security进行前端鉴权。

①修改common_aside.html,添加thymeleaf-springsecurity命名空间

<html xmlns:th="http://www.thymeleaf.org"  
	  xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">

②修改common-aside,加入security标签进行前端鉴权

<li id="admin" sec:authorize="hasAnyAuthority('/admin/all')">                
	<a href="/backstage/admin/all">
	 <i class="fa fa-circle-o"></i>用户管理
	 </a>
</li>

通过上面的sec:authorize="hasAnyAuthority('/admin/all')"来对前端进行鉴权配置,如果有admin/all权限则显示该组件

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到