Shiro用起来太痛苦?这个轻量级权限框架一行代码搞定登录

简介

SaToken是一个轻量级的Java权限认证框架,目标是让鉴权变得简单、优雅。

其主要解决了登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。

目前在Gitee上已经有了8.9K的star,足以可见大家对其的认可。

使用了SaToken以后,登录有多简单呢?

StpUtil.login(1001); //id为10001的用户登录

没错,一行代码就可以搞定登录了。

SaToken把很多功能都做了简化,尽量做到简单一行或者几行代码就可以帮大家完成日常的工作,并且将全局核心逻辑都封装到了SaStrategy类中,大家如果有定制化需求,只需重写其中的某个方法即可。

检查是否登录:

StpUtil.checkLogin();

踢人下线:

StpUtil.kickout(1001); //将id为1001的用户踢下线

权限认证:

// 注解鉴权: 检查当前用户是否具有add权限`user:add` 
@SaCheckPermission("user:add")
public String insert(SysUser user) {
    return "";
}

以下是Satoken支持的功能列表:

Shiro用起来太痛苦?这个轻量级权限框架一行代码搞定登录_第1张图片

Springboot集成示例

1,添加依赖


    cn.dev33
    sa-token-spring-boot-starter
    1.33.0

2,在application.yml增加配置

sa-token: 
    # token名称 (同时也是cookie名称)
    token-name: satoken
    # token有效期,单位s 默认30天, -1代表永不过期 
    timeout: 2592000
    # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
    activity-timeout: -1
    # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) 
    is-concurrent: true
    # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) 
    is-share: true
    # token风格
    token-style: uuid
    # 是否输出操作日志 
    is-log: false

3,添加SaInterceptor

@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
    // 注册拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
        registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
                .addPathPatterns("/**")
                .excludePathPatterns("/user/doLogin"); 
    }
}

经过以上3步,我们就可以使用SaToken进行相关的功能了。更多的功能细节大家可以去其官网查看,官方对每个功能细节都有详细的说明文档,上手十分容易。

官网地址:

https://sa-token.cc/doc.html#/

当然,以上只是SaToken的简单用法,现在我们很多项目都是前后台分离的,并且会有多台服务器构建集群,所以SaToken也提供了集成Redis等各种深入功能,大家根据其文档可以很轻松的集成到自己的项目中。

最后,借用其官网的一句话:当你受够 Shiro、SpringSecurity 等框架的三拜九叩之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!

感谢您的点赞和关注。

你可能感兴趣的:(JAVA进阶笔记,spring,boot,java,spring)