Most Spring Boot apps use actuator for /health, /metrics, /info. Admin operations that don't fit go into hand-rolled `@RestController` beans with an /admin/ prefix. Now you have two parallel worlds in your app - actuator and custom admin endpoints - with different security, docs, discovery, and exposure rules.
Apereo CAS went the other way. Every management operation - flush the ticket registry, import a registered service from JSON, invalidate cached SAML metadata, reload logging config at runtime, query the 400+ module catalog - is a custom actuator endpoint. 50+ of them.
Wrote an article about it: https://t.co/Onu8HDHrez
/cc @starbuxman
Most Spring Boot applications use events sparingly, if at all.
Apereo CAS — the open-source single sign-on platform — takes Spring’s event system and pushes it to its logical conclusion. Every authentication attempt fires events. Every ticket creation fires events. Every service registry mutation fires events. Every webflow action fires events before and after execution. These events get consumed asynchronously, persisted to pluggable backends (JPA, Redis, MongoDB, Kafka, DynamoDB), bridged into Spring Boot’s actuator audit system, and exposed via REST endpoints for monitoring.
I wrote an article about it:
https://t.co/lfxZ43EJph
/cc @starbuxman
Most Spring Boot projects handle configuration the same way: flat `@ConfigurationProperties` classes, string property names, and hoping everyone reads the README.
Apereo CAS has 1,000+ properties across 633 configuration classes. I wrote an article on how the configuration system stays navigable at that scale:
https://t.co/JhmMkGzon7
cc @starbuxman
#SpringBoot #Java #OpenSource
My book "CAS Internals" is out on Leanpub. 30 chapters tracing real code paths through Apereo CAS 7.3 — authentication flows, ticket registries, SAML2, OAuth2, OIDC engines, and more.
https://t.co/AYt9zHfCYG
@apereo#Apereo#OSS#OpenSource#CAS#Java#IAM#SSO#SpringBoot