您现在的位置是:首页 > 文章详情

SpringBoot使用tools-auth进行权限验证

日期:2020-05-11点击:360

简单快速的在项目中进行权限验证

一、导入依赖

<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-auth</artifactId> <version>1.0.0</version> </dependency>

二、权限注解

该注解使用在API上,用于对用户请求方法时进行身份认证

1、@RequiredPermissions

权限认证,请求的用户需要存在该注解中设置的权限,否则抛出PermissionAuthorizationException

参数 描述
value 需要的权限

2、@RequiredRoles

角色认证,请求的用户需要存在该注解中设置的角色,否则抛出RoleAuthorizationException

参数 描述
value 需要的角色

三、token生成器

主要用来生成Token和解析Token,使用时可以通过@Resource注解进行依赖注入

public class TestController { @Resource private TokenAssistant tokenAssistant; @GetMapping("/token") public void getToken() { Map<String, Object> map = new HashMap<>(16); map.put("user", "张三"); String token = this.tokenAssistant.createToken(map); System.out.println("生成的token:" + map); System.out.println("解析token:" + this.tokenAssistant.parseToken(token)); } }

四、启动类增加注解

在项目启动类增加@EnableAuthorization注解用于开启项目权限校验

五、设置权限认证监听器

通过监听器可以对用户拥有的权限进行提供以及进行自己的认证校验

/** * @author Gjing **/ @Component public class MyListener implements AuthorizationListener { /** * 增加用户的访问权限用于对增加了权限注解的方法进行身份认证,如果返回null会抛出NoAccountException * 这里模拟权限数据,给当前请求的用户增加admin角色和add权限。实际使用时 * 用户权限你可以保存在任何地方 * * @param token 用户Token * @return AuthorizationMetaData */ @Override public AuthorizationMetaData supplyAccess(String token) { SimpleAuthorizationMetaData metaData = new SimpleAuthorizationMetaData(); metaData.addRole("admin"); metaData.addPermission("add"); return metaData; } /** * 权限注解验证通过后会触发该方法,你可以在这里做一些项目中自己的权限认证逻辑 * * @param token 用户Token */ @Override public void authentication(String token) { } /** * 验证全部通过后且方法执行完毕 * * @param request HttpServletRequest * @param method 请求的方法 */ @Override public void authenticationSuccess(HttpServletRequest request, Method method) { System.out.println(); } }

六、额外配置

可以通过这些配置控制拦截路径和过滤路径,以及token存在的请求头名称等等...全部配置如下:

snow: auth: # 拦截的路径 path: /** # 排除的路径 filter: # 生成token的加密方式 type: hs256 # token存放的请求头名称 header: Authorization # 加密的盐 salt: 

原文链接:https://yq.aliyun.com/articles/759770
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章