Well, to follow up on my own question, I figured out the answer, although
I'm still a little confused.

Apparently, if you enable the SAML IdP, CAS requires that a service be
defined in the service registry allowing access to

${cas.server.prefix}/idp/profile/SAML2/Callback.+


As near as I can tell, this is not documented anywhere. :-(

But anyway, if you don't have a service defined in your service registry
that matches URLs like the above, CAS will create one for you and stick it
into your service registry.

So the reason I didn't encounter any problems when I was working on setting
up my SAML IdP is because I had a "wildcard" entry in my service registry
that matched the regular expression

^(https|imaps)://.*


Since that expression matches the other one, the CAS server was happy. But
then I decided that I should really clean things up and get rid of my
wildcard service definition. As soon as I did that, the CAS server started
crashing on me.

Why? Because when the CAS server creates that service registry entry, it
doesn't just stick it into the in-memory copy of the service registry, it
also tries to save it in the persistent store -- in this case, my
/etc/cas/services directory full of JSON files. But because I am not
running the services manager webapp yet, my /etc/cas/services directory was
not writable by the CAS server, and so...it failed.

A few comments/suggestions:

   - At a minimum, the need for this service to be defined (or for there to
   be something else that matches it) should be defined somewhere (probably on
   the / Installation / SAML2 Authentication page). I would offer to do
   that, but I don't know why the service is needed (other than "the server
   breaks without it") or what it's for.
   - If there is no matching service and the server is going to create one
   on its own, a WARN-level log message should be given informing the
   administrator that this is what's happening, much like the warning messages
   that appear when encryption keys are missing and therefore being generated,
   etc. (The only log messages generated about this at the moment are at the
   DEBUG level, and they're not terribly informative unless you're starting at
   the code.)
   - I'm not sure I'm a big fan of the server creating things in my
   persistent registry store. I would suggest that, with the warning message
   mentioned above, it makes more sense for the server to only create the
   service registry entry in the in-memory registry, re-generating it each
   time the server is started (again, much like the encryption keys).

I don't understand the affected code well enough to do the last two
bullets, but would be happy to help test if someone else is able to do
them...

--Dave


--

DAVID A. CURRY, CISSP
*DIRECTOR OF INFORMATION SECURITY*
INFORMATION TECHNOLOGY

71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
+1 212 229-5300 x4728 • [email protected]

[image: The New School]

On Tue, Oct 31, 2017 at 4:29 PM, David Curry <[email protected]>
wrote:

> CAS 5.2.0-SNAPSHOT built this morning with the Maven WAR overlay.
>
> Okay, so I have my JSON service registry set up to load JSON files from
> /etc/cas/services/. This has been working just fine for weeks. One of the
> files I have in there is called "HTTPSandIMAPSwildcard-20170828090137.json",
> which contains:
>
> {
>   /*
>    * Wildcard service definition that applies to any https or imaps url.
>    * Do not use this definition in a production environment.
>    */
>   "@class" :            "org.apereo.cas.services.RegexRegisteredService",
>   "serviceId" :         "^(https|imaps)://.*",
>   "name" :              "HTTPS and IMAPS wildcard",
>   "id" :                20170828090137,
>   "evaluationOrder" :   99999
> }
>
>
> This is basically the same thing as the "HTTPSandIMAPS-10000001.json"
> file that comes with CAS in the classpath.
>
> As long as I have the above file in /etc/cas/services, everything works
> fine. But if I remove it (because I really don't want a wildcard service
> pattern any more), then the server hits an error and fails to start. The
> stack trace is below, but these seem to be the relevant lines from cas.log
> :
>
> =============================================================
> WHO: audit:unknown
> WHAT: IO error opening file stream.
> ACTION: SAVE_SERVICE_FAILED
> APPLICATION: CAS
> WHEN: Tue Oct 31 15:42:17 EDT 2017
> CLIENT IP ADDRESS: unknown
> SERVER IP ADDRESS: unknown
> =============================================================
>
> Caused by: java.io.FileNotFoundException: /etc/cas/services/
> RegexRegisteredService-6805904835673174978.json (Permission denied)
>
> I have no idea what "SAVE_SERVICE_FAILED" is supposed to be telling me,
> since, as far as I know, I do not have anything set up to save services to
> disk (I am not, yet, using the services management webapp). I also have no
> idea what the "RegexRegisteredService-6805904835673174978.json" file is
> supposed to be; it's not anything that I created. And when I put my
> wildcard file back so that the server starts correctly, I do not see
> anything in /etc/cas/services that I didn't put there (i.e., I do not see
> the file in the error message above).
>
> Hopefully one of the many people on this list who are smarter than me has
> an idea what's causing this...
>
> Stack trace from cas.log:
>
> =============================================================
> WHO: audit:unknown
> WHAT: IO error opening file stream.
> ACTION: SAVE_SERVICE_FAILED
> APPLICATION: CAS
> WHEN: Tue Oct 31 15:42:17 EDT 2017
> CLIENT IP ADDRESS: unknown
> SERVER IP ADDRESS: unknown
> =============================================================
>
> >
> 2017-10-31 15:42:17,992 WARN [org.springframework.boot.context.embedded.
> AnnotationConfigEmbeddedWebApplicationContext] - <Exception encountered
> during context initialization - cancelling refresh attempt:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'scopedTarget.ssoPostProfileHandlerController': Invocation
> of init method failed; nested exception is java.lang.IllegalArgumentException:
> IO error opening file stream.>
> 2017-10-31 15:42:18,015 WARN [org.apereo.cas.util.io.PathWatcherService]
> - <Directory key is no longer valid. Quitting watcher service>
> 2017-10-31 15:42:18,066 ERROR [org.springframework.boot.SpringApplication]
> - <Application startup failed>
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'scopedTarget.ssoPostProfileHandlerController': Invocation
> of init method failed; nested exception is java.lang.IllegalArgumentException:
> IO error opening file stream.
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(
> InitDestroyAnnotationBeanPostProcessor.java:137)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeI
> nitialization(AbstractAutowireCapableBeanFactory.java:409)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.initializeBean(
> AbstractAutowireCapableBeanFactory.java:1620)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:555)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:483)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:345)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.cloud.context.scope.GenericScope$
> BeanLifecycleWrapper.getBean(GenericScope.java:359)
> ~[spring-cloud-context-1.2.4.RELEASE.jar:1.2.4.RELEASE]
>         at 
> org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:176)
> ~[spring-cloud-context-1.2.4.RELEASE.jar:1.2.4.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:340)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.support.AbstractApplicationContext.
> getBean(AbstractApplicationContext.java:1078) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.cloud.context.scope.refresh.
> RefreshScope.start(RefreshScope.java:121) ~[spring-cloud-context-1.2.4.
> RELEASE.jar:1.2.4.RELEASE]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.context.event.
> ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:256)
> ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.event.
> ApplicationListenerMethodAdapter.processEvent(
> ApplicationListenerMethodAdapter.java:177) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.event.
> ApplicationListenerMethodAdapter.onApplicationEvent(
> ApplicationListenerMethodAdapter.java:140) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.event.
> SimpleApplicationEventMulticaster.doInvokeListener(
> SimpleApplicationEventMulticaster.java:172) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.event.
> SimpleApplicationEventMulticaster.invokeListener(
> SimpleApplicationEventMulticaster.java:165) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.event.
> SimpleApplicationEventMulticaster.multicastEvent(
> SimpleApplicationEventMulticaster.java:139) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.support.AbstractApplicationContext.
> publishEvent(AbstractApplicationContext.java:393) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.support.AbstractApplicationContext.
> publishEvent(AbstractApplicationContext.java:347) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.context.support.AbstractApplicationContext.
> finishRefresh(AbstractApplicationContext.java:883)
> ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.boot.context.embedded.
> EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at org.springframework.context.support.AbstractApplicationContext.
> refresh(AbstractApplicationContext.java:546) ~[spring-context-4.3.12.
> RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.boot.context.embedded.
> EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at 
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at 
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at org.springframework.boot.web.support.
> SpringBootServletInitializer.run(SpringBootServletInitializer.java:154)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at org.springframework.boot.web.support.
> SpringBootServletInitializer.createRootApplicationContext(
> SpringBootServletInitializer.java:134) ~[spring-boot-1.5.8.RELEASE.
> jar:1.5.8.RELEASE]
>         at org.springframework.boot.web.support.
> SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87)
> ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
>         at org.springframework.web.SpringServletContainerInitiali
> zer.onStartup(SpringServletContainerInitializer.java:169)
> ~[spring-web-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1144)
> ~[catalina.jar:8.5.20]
>         at 
> org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1878)
> ~[catalina.jar:8.5.20]
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> ~[?:1.8.0_151]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> ~[?:1.8.0_151]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> ~[?:1.8.0_151]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> ~[?:1.8.0_151]
>         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
> Caused by: java.lang.IllegalArgumentException: IO error opening file
> stream.
>         at org.apereo.cas.services.AbstractResourceBasedServiceRe
> gistryDao.save(AbstractResourceBasedServiceRegistryDao.java:336)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager.save(
> AbstractServicesManager.java:173) ~[cas-server-core-services-
> registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager.save(
> AbstractServicesManager.java:164) ~[cas-server-core-services-
> registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager$$
> FastClassBySpringCGLIB$$fbf64054.invoke(<generated>)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at 
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.CglibAopProxy$
> CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.MethodInvocationProceedingJoin
> Point.proceed(MethodInvocationProceedingJoinPoint.java:85)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.apereo.inspektr.audit.AuditTrailManagementAspect.
> handleAuditTrail(AuditTrailManagementAspect.java:134)
> ~[inspektr-audit-1.7.GA.jar:1.7.GA]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.aop.aspectj.AbstractAspectJAdvice.
> invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.AbstractAspectJAdvice.
> invokeAdviceMethod(AbstractAspectJAdvice.java:618)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.AspectJAroundAdvice.
> invoke(AspectJAroundAdvice.java:70) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:168) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.interceptor.
> ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.CglibAopProxy$
> DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.apereo.cas.services.DefaultServicesManager$$
> EnhancerBySpringCGLIB$$1f6162aa.save(<generated>)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.aop.support.AopUtils.
> invokeJoinpointUsingReflection(AopUtils.java:333)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> invokeJoinpoint(ReflectiveMethodInvocation.java:190)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.support.DelegatingIntroductionIntercep
> tor.doProceed(DelegatingIntroductionInterceptor.java:133)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.support.DelegatingIntroductionIntercep
> tor.invoke(DelegatingIntroductionInterceptor.java:121)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.JdkDynamicAopProxy.
> invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at com.sun.proxy.$Proxy110.save(Unknown Source) ~[?:?]
>         at org.apereo.cas.support.saml.web.idp.profile.
> AbstractSamlProfileHandlerController.registerCallback(
> AbstractSamlProfileHandlerController.java:262)
> ~[cas-server-support-saml-idp-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.support.saml.web.idp.profile.
> AbstractSamlProfileHandlerController.initialize(
> AbstractSamlProfileHandlerController.java:183)
> ~[cas-server-support-saml-idp-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(
> InitDestroyAnnotationBeanPostProcessor.java:366)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.
> invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(
> InitDestroyAnnotationBeanPostProcessor.java:134)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         ... 46 more
> Caused by: java.io.FileNotFoundException: /etc/cas/services/
> RegexRegisteredService-6805904835673174978.json (Permission denied)
>         at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_151]
>         at java.io.FileOutputStream.open(FileOutputStream.java:270)
> ~[?:1.8.0_151]
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> ~[?:1.8.0_151]
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
> ~[?:1.8.0_151]
>         at org.apereo.cas.services.AbstractResourceBasedServiceRe
> gistryDao.save(AbstractResourceBasedServiceRegistryDao.java:314)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager.save(
> AbstractServicesManager.java:173) ~[cas-server-core-services-
> registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager.save(
> AbstractServicesManager.java:164) ~[cas-server-core-services-
> registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.services.AbstractServicesManager$$
> FastClassBySpringCGLIB$$fbf64054.invoke(<generated>)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at 
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.CglibAopProxy$
> CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.MethodInvocationProceedingJoin
> Point.proceed(MethodInvocationProceedingJoinPoint.java:85)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.apereo.inspektr.audit.AuditTrailManagementAspect.
> handleAuditTrail(AuditTrailManagementAspect.java:134)
> ~[inspektr-audit-1.7.GA.jar:1.7.GA]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.aop.aspectj.AbstractAspectJAdvice.
> invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.AbstractAspectJAdvice.
> invokeAdviceMethod(AbstractAspectJAdvice.java:618)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.aspectj.AspectJAroundAdvice.
> invoke(AspectJAroundAdvice.java:70) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:168) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.interceptor.
> ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.CglibAopProxy$
> DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.apereo.cas.services.DefaultServicesManager$$
> EnhancerBySpringCGLIB$$1f6162aa.save(<generated>)
> ~[cas-server-core-services-registry-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.aop.support.AopUtils.
> invokeJoinpointUsingReflection(AopUtils.java:333)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> invokeJoinpoint(ReflectiveMethodInvocation.java:190)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.support.DelegatingIntroductionIntercep
> tor.doProceed(DelegatingIntroductionInterceptor.java:133)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.support.DelegatingIntroductionIntercep
> tor.invoke(DelegatingIntroductionInterceptor.java:121)
> ~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at org.springframework.aop.framework.JdkDynamicAopProxy.
> invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.12.RELEASE.
> jar:4.3.12.RELEASE]
>         at com.sun.proxy.$Proxy110.save(Unknown Source) ~[?:?]
>         at org.apereo.cas.support.saml.web.idp.profile.
> AbstractSamlProfileHandlerController.registerCallback(
> AbstractSamlProfileHandlerController.java:262)
> ~[cas-server-support-saml-idp-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at org.apereo.cas.support.saml.web.idp.profile.
> AbstractSamlProfileHandlerController.initialize(
> AbstractSamlProfileHandlerController.java:183)
> ~[cas-server-support-saml-idp-5.2.0-SNAPSHOT.jar:5.2.0-SNAPSHOT]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_151]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(
> InitDestroyAnnotationBeanPostProcessor.java:366)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.
> invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         at org.springframework.beans.factory.annotation.
> InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(
> InitDestroyAnnotationBeanPostProcessor.java:134)
> ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
>         ... 46 more
>
>
>
> --
>
> DAVID A. CURRY, CISSP
> *DIRECTOR OF INFORMATION SECURITY*
> INFORMATION TECHNOLOGY
>
> 71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
> +1 212 229-5300 x4728 • [email protected]
>
> [image: The New School]
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CA%2Bd9XAMEXVvJ9E0JJeogLVVF3_btgGKwM4BjD0%2BKewKNi%2B9KGQ%40mail.gmail.com.

Reply via email to