Going thru this and here are my notes of what I had to do so far. We have a custom login flow to run business logic after authentication but before TGT is created.
CAS 7 requires JDK 21, so if you are using JDK 17 or lower and you have any custom code such for example but not limited to these imports:
- `javax.persistence.*` → `jakarta.persistence.*`
- `javax.servlet.*` → `jakarta.servlet.*`
- `javax.validation.*` → `jakarta.validation.*`
- `javax.annotation.*` → `jakarta.annotation.*`
- `javax.transaction.*` → `jakarta.transaction.*`
- `javax.inject.*` → `jakarta.inject.*`
Verify these properties are updated if you updating your existing instance versus starting from scratch with 7.x
- **gradle.properties**: `sourceCompatibility=21`, `targetCompatibility=21`
- **.java-version**: `21.0`
- **system.properties**: `java.runtime.version=21`
- **Spring Boot**: Version 3.5.6 (compatible with JDK 21)
- **CAS**: Version 7.3.1 (compatible with JDK 21)
If you have any custom Thymeleaf views, you may need to adust too to conform to their restriction of using request object.
Migrate any custom classes from spring.factories to org.springframework.boot.autoconfigure.AutoConfiguration.imports
If you are connecting to a db for your custom code, you may also need to redefine or create a transaction mananger.