代码拉取完成,页面将自动刷新
同步操作将从 baomidou/shaun 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
一个基于pac4j的安全框架
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>shaun-spring-boot-starter</artifactId>
<version>${version}</version>
</dependency>
@Service
@AllArgsConstructor
public class LoginServiceImpl implements LoginService {
private final SecurityManager securityManager;
@Override
@Transactional
public String login() {
// 登录成功后把用户角色权限信息存储到profile中
final TokenProfile profile = new TokenProfile();
profile.setId(userId.toString());
//profile.setRoles(roles);
//profile.setPermissions(permissions);
//profile.addAttribute("key","value");
final String token = securityManager.login(profile);
return token;
}
shaun:
salt: 32位字符串,非必须字段
exclude-path: # 排除具体的路径
- /v2/api-docs
- /swagger-resources
- /doc.html
exclude-branch: # 排除以此路径开头
- /webjars
expire-time: '1d' # 不设置默认永久有效
# jwt 超时时间 10s : 表示10秒有效
# 10m 结尾: 表示10分钟有效
# 10h 结尾: 表示10小时有效
# 1d : 表示有效时间到第二天 00:00:00
# 2d1h : 表示有效时间到第二天 01:00:00
# d 后面 只支持上面三个(`s`,`m`,`h`)之一
类似于shiro,shaun也默认支持使用注解在controller上拦截。
相关的注解有 @HasAuthorization
@HasPermission
@HasRole
。
@HasPermission(value = {"add","edit"},logical = Logical.BOTH) //权限必须同时存在
@HasPermission(value = {"add","edit"},logical = Logical.ANY) //权限任一存在
默认配置下 前端登录后需要把后端返回的token存下,后续接口的请求头带上Authorization。
后端可以通过 TokenProfile profile = ProfileHolder.getProfile(); 获得登录设置进去的用户信息。
如获得登录设置进token里的用户ID继续进行业务逻辑处理。
如 Long id= ProfileHolder.getProfile().getId();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。