skillhub/server
dongmucat 821c7e1333 fix(auth): address second CAS review — ticket log, emailVerified, package, CSRF
B1 — Ticket log leak: log.debug now records only the validation path
(resolvedProtocolVersion().validatePath()); the catch block surfaces only
e.getClass().getSimpleName() instead of e.getMessage(), preventing the
full validation URL (with ticket query param) from reaching log streams.

B2 — emailVerified semantics: CasIdentityClaims.emailVerified() now
constantly returns false. CAS passes through email attributes from the
upstream directory (LDAP/AD) without cryptographic verification, so
returning true was a false signal to any AccessPolicy that gates on it.

B3 — Exception package: AccountPendingException and AccountDisabledException
moved from auth.oauth to auth.identity; all import sites updated. OAuth,
CAS, and future SAML/OIDC flows now import from the neutral package.

S6 — Login CSRF via state nonce: login() generates a cryptographically
random 24-byte nonce, stores it in the session under a CAS-specific key
(skillhub.cas.state), and appends state=<nonce> to the service URL that
is sent to the CAS server. callback() validates the incoming state param
against the session value before touching the ticket; a mismatch short-
circuits to redirect:/login?error=invalid_state. The CAS-specific session
key (skillhub.cas.state / skillhub.cas.returnTo) also eliminates the
previous shared-key concurrency hazard with the OAuth flow.
2026-05-28 14:01:05 +08:00
..
.mvn docs: add Maven mirror config and troubleshooting guide for China developers (#233) 2026-04-07 09:50:07 +08:00
scripts feat(notification): add in-app notifications and harden delivery 2026-03-23 12:31:28 +08:00
skillhub-app fix(auth): address CAS SSO review — XXE, AccessPolicy, timeouts, release wiring 2026-05-27 15:19:11 +08:00
skillhub-auth fix(auth): address second CAS review — ticket log, emailVerified, package, CSRF 2026-05-28 14:01:05 +08:00
skillhub-domain fix(publish): address Codex review findings for dry-run 2026-05-18 14:50:14 +08:00
skillhub-infra fix(namespace): support team namespace deletion 2026-05-08 10:15:17 +08:00
skillhub-notification chore(notification): sync main and expand regression coverage 2026-03-23 15:04:47 +08:00
skillhub-search fix(search): restore clawhub namespace-only access 2026-04-21 17:28:05 +08:00
skillhub-storage fix(storage): disable chunked encoding for Aliyun OSS compatibility 2026-05-06 13:56:55 +08:00
.dockerignore feat(staging): optimize staging build with local Maven packaging 2026-03-14 14:21:06 +08:00
Dockerfile fix(storage): defer S3 bucket verification until first access (#289) 2026-04-12 15:24:09 +08:00
Dockerfile.dev fix(storage): defer S3 bucket verification until first access (#289) 2026-04-12 15:24:09 +08:00
mvnw feat: initialize Maven multi-module project structure 2026-03-11 22:52:04 +08:00
mvnw.cmd feat: initialize Maven multi-module project structure 2026-03-11 22:52:04 +08:00
pom.xml feat(notification): add in-app notifications and harden delivery 2026-03-23 12:31:28 +08:00