Fetch the repository succeeded.
基于 pac4j-jwt 的 WEB 安全组件
主要依托 pac4j-jwt
来提供默认使用 JWT
的 WEB 安全组件
JDK | shaun | spring boot |
---|---|---|
17 | 2.x | 3.x |
8 | 1.x | 2.x |
jwt
进行身份认证jwt
配置,默认签名
+加密
session
(pac4j
提供的类除外)pac4j
的各种client快速集成三方登录(redirect跳转那种),例如oauth(qq,微信) 和 cas。togglz
的 UserProvider
一个实现类<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();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. Open source ecosystem
2. Collaboration, People, Software
3. Evaluation model