init: CasSsoService CAS 5.3 overlay (cas.war via LFS)
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
server:
|
||||
ssl:
|
||||
enabled: false
|
||||
port: 8443
|
||||
use-forward-headers: false
|
||||
|
||||
cas:
|
||||
# 显式声明 CAS 自身访问地址,避免根路径 / 或 /index.html 被重定向到错误端口(曾出现跳到 8080 的问题)。
|
||||
# CAS 的默认值是 https://cas.example.org:8443,若运行时被外部配置覆盖成 8080,根页面重定向就会错位。
|
||||
server:
|
||||
name: http://localhost:8443
|
||||
prefix: http://localhost:8443/cas
|
||||
# CAS 核心配置
|
||||
tgc:
|
||||
secure: false
|
||||
# 显式指定 TGC Cookie 的 Path,必须覆盖 /cas 下所有路径(含自定义 /cas/api/login)。
|
||||
# 若不配置,CAS 默认会把 Path 留空,浏览器按“请求目录”取值:
|
||||
# - 标准登录在 /cas/login 种 Cookie -> Path=/cas/ -> 正常
|
||||
# - 自定义登录在 /cas/api/login 种 Cookie -> Path=/cas/api/ -> 跳到 /cas/login 时浏览器不带此 Cookie,导致还要再登录
|
||||
path: /cas
|
||||
# 固定 TGC 加密/签名密钥。不配置的话每次重启都会自动生成新密钥,
|
||||
# 导致浏览器里旧 TGC Cookie 解密失败(表现为启动后首次访问的 NPE DEBUG 噪声),且启动日志反复 WARN。
|
||||
crypto:
|
||||
encryption:
|
||||
key: 7qLRih0bq6I_A7MehkJVtD4c9foKUFUgU0Py8BvmX9w
|
||||
signing:
|
||||
key: RVYx5M5u-Wu6WPNz1C-PSpCDPlnJ7Z9rvaVfaWLJlbddhcKnUhiluW4Z2S4XgnV3ya6DydtBeS55cnKwFkgzZw
|
||||
# 固定 Webflow 加密/签名密钥,理由同上
|
||||
webflow:
|
||||
crypto:
|
||||
encryption:
|
||||
key: VgGmJuzf2Xbk2Pn0ZrEMVw
|
||||
signing:
|
||||
key: 48ES4odoN40R9JPlIIcxbOWCHBngCTolqEypXuS86WUjNa1eccI6_f7e3GoQur04ki9Tu7PbFs1XO3FdN1Q_Mw
|
||||
serviceRegistry:
|
||||
initFromJson: true
|
||||
# 登出后允许按 ?service= 参数跳转到指定地址(如回到登录页)
|
||||
logout:
|
||||
followServiceRedirects: true
|
||||
# 认证配置
|
||||
authn:
|
||||
# JDBC 认证配置
|
||||
jdbc:
|
||||
query[0]:
|
||||
sql: select * from sys_user where username=?
|
||||
fieldPassword: password
|
||||
fieldDisabled: disabled
|
||||
fieldExpired: expired
|
||||
url: jdbc:mysql://localhost:3306/bsch_userbase?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
|
||||
user: root
|
||||
password: 123456
|
||||
driverClass: com.mysql.jdbc.Driver
|
||||
dialect: org.hibernate.dialect.MySQLDialect
|
||||
# 密码加密策略:与自定义登录保持一致,使用 BCrypt(strength 10)
|
||||
# 这样 establishSsoSession 调用 CAS 认证链重新校验密码时也能通过
|
||||
passwordEncoder:
|
||||
type: BCRYPT
|
||||
strength: 10
|
||||
|
||||
spring:
|
||||
# 排除 Spring Boot 的 SecurityAutoConfiguration。
|
||||
# 原因:overlay 的 pom 把 spring-security-config/web 设成 compile 进了 war,
|
||||
# 而 CasWebApplication 的 @SpringBootApplication(exclude=...) 里并未排除 SecurityAutoConfiguration
|
||||
# (CAS 原本不依赖 spring-security-config,webapp 不自带它)。
|
||||
# 一旦 spring-security-config 在 classpath,SecurityAutoConfiguration 就会激活,
|
||||
# 注册默认 SecurityFilterChain 拦截 /cas/login,用默认登录页 + 默认凭据(user/随机密码)接管认证,
|
||||
# 导致 CAS webflow 的 accept-users/JDBC handler 完全失效,登录必报 "Reason: none"。
|
||||
# 排除后没有任何 Spring Security filter chain,/cas/login 由 CAS webflow 正常处理。
|
||||
autoconfigure:
|
||||
exclude:
|
||||
- org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
|
||||
- org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration
|
||||
- org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
password: 123456
|
||||
database: 0
|
||||
timeout: 5000
|
||||
jedis:
|
||||
pool:
|
||||
max-active: 8
|
||||
max-idle: 8
|
||||
min-idle: 0
|
||||
|
||||
logging:
|
||||
level:
|
||||
# 排查问题时可临时改为 DEBUG;DEBUG 会打出海量日志,Windows 控制台同步输出会把启动拖慢到几分钟
|
||||
org.apereo.cas: INFO
|
||||
|
||||
custom:
|
||||
rsa:
|
||||
public-key: |
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqytbHgQWZQmkwmp6WncV
|
||||
aUmUNgExYDB0Sp8h1qfyKfufbX2MEM6UzSPQHIwurFqkzcHljdrGDCXWZ2Xv8c8C
|
||||
27+MOPLf4VyYQ7invqtvmEwS6c3km4QqQVdrh0DJjVYhgO8reE8LhlDFc9Vh9Fwy
|
||||
Sb8pbC1EM0s2lN6ig7/9NR8+CqxW61ku+7VYnLzcRgpc0cF3K/mQwAjVf1pKjGtP
|
||||
G1mpLNcHpT2yp5u950GfFtdqYgAte7k4CDlwMDKfpf+2Pg5kZAzogO5DTq/QolOW
|
||||
qjZfgT2wBNpYVT+3glbhhRbc9T3/SqFeT9KlXcamBXLvKI6WuKxlAEeKTiosUgMK
|
||||
CQIDAQAB
|
||||
private-key: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrK1seBBZlCaTCanpadxVpSZQ2ATFgMHRKnyHWp/Ip+59tfYwQzpTNI9AcjC6sWqTNweWN2sYMJdZnZe/xzwLbv4w48t/hXJhDuKe+q2+YTBLpzeSbhCpBV2uHQMmNViGA7yt4TwuGUMVz1WH0XDJJvylsLUQzSzaU3qKDv/01Hz4KrFbrWS77tVicvNxGClzRwXcr+ZDACNV/WkqMa08bWaks1welPbKnm73nQZ8W12piAC17uTgIOXAwMp+l/7Y+DmRkDOiA7kNOr9CiU5aqNl+BPbAE2lhVP7eCVuGFFtz1Pf9KoV5P0qVdxqYFcu8ojpa4rGUAR4pOKixSAwoJAgMBAAECggEBAJsnYJ9zmw0Y0bS8qY2I9eqLHIJbUHNdWHwvhI+7ikHN6HRp4eV2K+FK/iByXPgz7cDoafjMfsqSHad5+iZYu8GO/j68wHzZ3tc78Sle4nfNNTOjQv5Irbiu0jQ2YLvxf8sMgH28QLkOS/y0RecnDxpT4etBmNlZ6u7EY9FC3PUhkTCb2Ioy+xhA9FNZLc9awmzuqLZMkhUThspRmEFoBDgQV/U0o9OVVi3nEecEUvOCQpv3kwpDZMJECNPxY+qnGs3uKl6hbWXVhhqO9XKOu3wN2AJmakugcBSD6NpFu+C+BOah/kMlcrUXgVQUeObhwXfQjrw4CNyrD1AVvtVWfwECgYEA4Q38R60oZtZqEXz2KvhOM4uvD3def+IrLa6xnjHtqOQ1m7Ok1wLvhVW3P37/HyYyuq3EhRo2drD1qI58wZ9QAvFSnrNMHwqbaYew4OciFs28zPcYgRR1dLEOcz/WBbqhixClrJX22imil/eqxktDamDetSlkKo9F+rInzQukWykCgYEAwrSWRGLjHdQYmeBShOFKb+OPAR2198QTZPN5DmNXVgRfp+cb7FQ7Mw8ZndpDlfu7ARTwhNv0y3piCj8bJtm7BgXaQowwTR0AxRDkqF6fUNVqKEyE25G1hhE2NCD/4b+rAO8IaCCNnjSvAWhXjg7sQHBngJhFxYY68NQx6wuv8+ECgYA9KcLda/bl8/HBrPdt+CuwoI7EIknhcYMQmECXYLRZSSQ0m575/EdCMmhp7kbBnWz+BQm6rsQMf81TsN3A9V4WXqV4kfvnF8fi50iv5sEB94oPHjxfoELHovLtaXTt+6m5lJ2iCOOcqOIScPHNkFjTCV6dV5Fsa6G2H0Ln2/kf+QKBgBJVZMzdrtsRLJvYpoyCljrA56dIP+krmlPoJR74tbGQyd0KgvOW3tgo9NWLRs/pmys36InqGDvMs0yZspnO6LBhfrLDdozcTUVBGPbNqhy3a76Nrfjq2HfeSQdRkCaWoKh+2YDMh+k8trngNFZZC1/p9aUDMZau0//3SxgByrihAoGAPyOKhvPuoQfkbe6kyqGOZoPmctr5mQiHAPzNoKQkGD0pAGrId77KfDjPY8qM0ZTCLuYUJHy3ISefgHKANHLBgPlQasHo6t2f5Wk/173ju+cruW07APe3imXeGkpL4cg4n1YWvSAkwr4GoDXvTd6uL15zM452oxcW8p4hdoITaP0=
|
||||
login:
|
||||
# 登录成功(无 service 参数)时的默认落点。必须是静态前端页,绝不能指向 CAS 原生登录页
|
||||
# (/cas/login 或 /login)——否则登录成功会被甩回 CAS 登录页形成死循环。
|
||||
# 该值会被打包进 WAR 的 classpath application.yml,且会覆盖 LoginController 中 @Value 的默认值,
|
||||
# 所以这里必须显式写成前端页路径。业务系统带 service 参数时仍走各自回跳地址。
|
||||
default-redirect-url: /front/index.html
|
||||
# 是否强制每次登录都必须校验验证码。
|
||||
# false(默认)/ 不配置:维持原逻辑,仅当同一会话登录失败达到阈值后才要求验证码。
|
||||
# true:任何登录(含首次)都必须携带并校验验证码,用于彻底阻断批量账号枚举探测。
|
||||
always-captcha: false
|
||||
Reference in New Issue
Block a user