yutool-casdoor 对接Casdoor
Casdoor是一个单点登录平台,不同的系统可通过Casdoor打通用户认证体系,还可以使用Casdoor内置的OAuth提供商绑定GitHub、Google等主流平台的账号,使登录方式更加灵活。
同时Casdoor还具备完整的角色、权限管理功能,内置的存储提供商功能可以方便地整合各种文件存储方案。
yutool-casdoor中使用Spring Security OAuth2结合Casdoor实现了OAuth2登录功能,替换了之前的yutool-auth认证模块。yutool-casdoor还整合Casdoor中的MinIO提供商实现了文件服务,替换了yutool-file-server文件服务模块。通过整合yutool-menu和Casdoor的用户角色管理,可以实现系统菜单的动态授权。
使用方式
1. Maven依赖
pom.xml文件中添加yutool-casdoor依赖:
<parent>
<groupId>com.yupaits</groupId>
<artifactId>yutool-parent</artifactId>
<version>${yutool.version}</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>com.yupaits</groupId>
<artifactId>yutool-casdoor</artifactId>
</dependency>
</dependencies>2
3
4
5
6
7
8
9
10
11
12
13
2. 配置文件
yutool-casdoor相关的配置项:
spring:
security:
oauth2:
client:
# 是否启用OAuth2登录
enabled: true
# Casdoor应用注册信息
registration:
casdoor:
client-name: Casdoor单点登录
client-id: <ClientId>
client-secret: <ClientSecret>
scope: openid,email,profile
authorization-grant-type: authorization_code
redirect-uri: https://<Application Hostname>/login/oauth2/code/casdoor
# Casdoor OAuth2端口
provider:
casdoor:
authorization-uri: https://<Casdoor Hostname>/login/oauth/authorize
token-uri: https://<Casdoor Hostname>/api/login/oauth/access_token
user-info-uri: https://<Casdoor Hostname>/api/userinfo
jwk-set-uri: https://<Casdoor Hostname>/.well-known/jwks
user-name-attribute: name
# 忽略认证信息的访问路径,不登录也能访问
security:
ignore-paths:
- /favicon.png
- /logo.png
- /assets/**
- /login
# Casdoor应用信息
casdoor:
endpoint: https://<Casdoor Hostname>
client-id: <ClientId>
client-secret: <ClientSecret>
certificate: <JWT Public Key>
organization-name: <Organazition>
application-name: <Application Name>
# MinIO存储服务配置
minio:
endpoint: http://<MinIO endpoint>
accessKey: <AccessKey>
secretKey: <SecretKey>
# 登录页配置
login-page:
# favicon图片链接
favicon-url: <favicon url>
# 应用Logo图片链接
logo-url: <logo url>
# 应用Slogan
slogan: <Application Slogan>2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
注意: 带<>的配置值需要替换为实际内容。配置了Casdoor应用信息(casdoor下的配置)和MinIO存储服务配置(minio下的配置)在不启用OAuth2登录(spring.security.oauth2.client.enabled=false)的情况下,可以正常使用文件服务。
spring.security.oauth2.client.provider下的各uri地址可能会随着casdoor版本更新发生变化,可通过访问https://<Casdoor Hostname>/.well-known/openid-configuration接口进行确认。
yutool-casdoor使用Casdoor中用户的角色信息,通过匹配yutool-menu中菜单项的授权角色信息实现了动态授予用户菜单权限。
评论区留言准则:
1. 本评论区禁止传播封建迷信、吸烟酗酒、低俗色情、赌博诈骗等任何违法违规内容。
2. 当他人以不正当方式诱导打赏、私下交易,请谨慎判断,以防人身财产损失。
3. 请勿轻信各类招聘征婚、代练代抽、私下交易、购买礼包码、游戏币等广告信息,谨防网络诈骗。