此页面所有软件内容、截图、价格、介绍等均来源于互联网,地址均为第三方提供,请谨慎下载。
简介
主要依托 pac4j-jwt
来提供默认使用 JWT
的 WEB 安全组件
技术讨论 QQ 群: 183066216
优点
- 迅速集成,只需要少量配置 代码即可实现基本的接口防护
- 默认使用
jwt
进行身份认证 - 灵活的
jwt
配置,默认签名
加密
- 更多高级功能只需实现对应接口并注入到spring容器内
- 本框架各类均不会使用
session
(pac4j
提供的类除外) - 前后端不分离下,能依托
pac4j
的各种client快速集成三方登录(redirect跳转那种),例如oauth(qq,微信) 和 cas。
模块简介
- shaun-core: 核心包。
- shaun-togglz: 提供对
togglz
的UserProvider
一个实现类 - shaun-spring-boot-starter: spring boot 快速启动包。
- tests下: 各种测试演示。
安装
- 引入: shaun-spring-boot-starter 和 spring-boot-starter-web
<dependency> <groupId>com.baomidou</groupId> <artifactId>shaun-spring-boot-starter</artifactId> <version>Latest Version</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>spring-boot-version</version> </dependency>
- 配置
application.yml
详情查看 wiki
shaun: ...... security: ...... actuator: ...... thirdParty: ......
更多 yml 配置点此查看
- 编写登陆代码
import com.baomidou.shaun.core.mgt.SecurityManager; @Service public class LoginServiceImpl implements LoginService { @Autowired private SecurityManager securityManager; @Override @Transactional public String login() { // 登录成功后把用户角色权限信息存储到profile中 final TokenProfile profile = new TokenProfile(); profile.setId(userId.toString()); //profile.addRole(role:String); //profile.setRoles(roles:Set); //profile.addPermission(permission:String); //profile.setPermissions(permissions:Set); //profile.addAttribute("key","value"); final String token = securityManager.login(profile); //如果选择token存cookie里,securityManager.login会进行自动操作 return token; }
- 注解权限拦截:
@HasAuthorization
,@HasPermission
,@HasRole
支持注解在
method
上以及class
上
例:
@HasPermission(value = {"add", "edit"}, logical = Logical.BOTH) //权限必须同时存在 @HasPermission(value = {"add", "edit"}, logical = Logical.ANY) //权限任一存在(默认)
- 如何获取用户信息(不需要安全拦截的接口获取不到哦)
TokenProfile profile = ProfileHolder.getProfile();