So this happened. We are using CAS 5.0.3.1 with JSON service registry
files. We inadvertantly created a service registration with an error in
the regex for the serviceID (improperly escaped "\\." as "\."). Although
we didn't notice it at the time, this was logged with the error/warnings
ERROR [org.apereo.cas.services.AbstractResourceBasedServiceRegistryDao] - <Error reading configuration file Bad_serviceID-20170328162739.json>
java.lang.IllegalArgumentException: org.hjson.ParseException: Expected valid escape sequence at 3:30
...
WARN [org.apereo.cas.services.AbstractResourceBasedServiceRegistryDao] - <Could not load service definition from file /home/cas/cas/services/Bad_serviceID-20170328162739.json>
WARN [org.apereo.cas.services.AbstractResourceBasedServiceRegistryDao] - <1 errors encountered when loading service definitions. New definitions are not loaded until errors are corrected>
But CAS continued on working in general. However, some time later, the CAS
service was restarted after an OS reboot. Upon restart, the same errors
are noted, but there was crucial difference
INFO [org.apereo.cas.services.DefaultServicesManagerImpl] - <Loaded 0 services from JsonServiceRegistryDao.>
None of the other valid service definitions were loaded, and thus our CAS
was effectively broken for everyone by this one bad definition.
Is there a way to configure CAS to just ignore the bad definitions rather
than just fail completely in situations like this? While we probably should
have caught this sooner, it definitely turned out to be a time bomb for
us. Is there a good reason for this behavior that we're missing?
Aloha,
-baron
--
Baron Fujimoto <
ba...@hawaii.edu> :: UH Information Technology Services
minutas cantorum, minutas balorum, minutas carboratum desendus pantorum