I think the key that you are missing is this in the management properties
cas.serviceRegistry.git.cloneDirectory=${git-repo-folder-location}
You cas.serviceRegistry properties from cas.properties to mgmt.properties
should be identical. Also running the Git services repo with
management and server in the same JVM, might be an issue.
Try turning version control off in management and make your serviceRegistry
properties in both to rule out running in same JVM is a problem.
On Fri, Jan 31, 2020 at 8:00 AM Nathan Lewan <[email protected]> wrote:
> hello!
>
> these forums have been great for me, and I'd like to throw out a question
> to see if anyone has any insights.
>
> here's what's working:
>
> cas and cas-management 6.1 RC4 running on tomcat9 on the same server, are
> both able to see the git service registry I have set up.
>
> my fun begins when cas-management commits it's changes. It commits them in
> the local git cache, which the cas service is also pointing at and picks
> up, BUT it never pushes the commit to the git repo.
>
> I get java nullopintexception error. actually I get that error right when
> I select to look at the services in the cas-management web interface:
>
> ---------------------------------------
> 2020-01-31 10:44:07,275 ERROR
> [org.apereo.cas.mgmt.controller.CommitController] - <null>
> java.lang.NullPointerException: null
> at
> org.apereo.cas.mgmt.controller.CommitController.isPublishedBehind(CommitController.java:201)
> ~[cas-mgmt-support-version-control-6.1.0-RC4.jar:6.1.0-RC4]
> at
> org.apereo.cas.mgmt.controller.CommitController.gitStatus(CommitController.java:225)
> [cas-mgmt-support-version-control-6.1.0-RC4.jar:6.1.0-RC4]
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) ~[?:?]
> at
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> ~[?:?]
> at
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:?]
> at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
> at
> org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:889)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:794)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
> [servlet-api.jar:?]
> at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
> [spring-webmvc-5.2.0.M2.jar:5.2.0.M2]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
> [servlet-api.jar:?]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
> [tomcat-websocket.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:66)
> [inspektr-common-1.8.5.GA.jar:1.8.5.GA]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)
> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
> at
> org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
> at
> org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:105)
> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)
> [spring-boot-2.2.0.M3.jar:2.2.0.M3]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> [spring-web-5.2.0.M2.jar:5.2.0.M2]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
> [log4j-web-2.11.2.jar:2.11.2]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
> [catalina.jar:9.0.30]
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
> [catalina.jar:9.0.30]
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
> [tomcat-coyote.jar:9.0.30]
> at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
> [tomcat-coyote.jar:9.0.30]
> at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
> [tomcat-coyote.jar:9.0.30]
> at
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:1998)
> [tomcat-coyote.jar:9.0.30]
> at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> [tomcat-coyote.jar:9.0.30]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> [?:?]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> [?:?]
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> [tomcat-util.jar:9.0.30]
> at java.lang.Thread.run(Thread.java:834) [?:?]
>
>
>
>
> I have a rather fun setup, here's what I think is pertinent:
>
> the git repo in question is set up in a folder on the tomcat server. Call
> it: *git-repo-folder.*
> the linux user environment this all runs in is aware of the git repo, as
> well as the ssh key wich allows for unprompted git processes to be run.
> This was achieved by cloning *git-repo-folder *via ssh, generating a
> pub/private key, importing the key into the git server, importing the key
> into my known_hosts file, then editing the ~/.ssh/config file to have that
> key used whenever this particular git server is accessed.
>
>
> so CAS interfaces with all this via these cas.properties:
> # SERVICE REGISTRY
> cas.serviceRegistry.initFromJson=false
> [email protected]
> :user/cas-6_1-service-definitions.git
> cas.serviceRegistry.git.branchesToClone=master
> cas.serviceRegistry.git.activeBranch=master
> cas.serviceRegistry.git.cloneDirectory=${git-repo-folder-location}
> cas.serviceRegistry.git.pushChanges=true
> cas.serviceRegistry.git.timeout=PT10S
> cas.serviceRegistry.git.privateKeyPath
> =${me.base.dir}/cas-settings/keys/coderepo_id_rsa
>
>
> and CAS-MANAGEMENT interfaces with all this via these
> management.properties:
> mgmt.versionControl.servicesRepo=${git-repo-folder-location}
> mgmt.versionControl=true
>
> # SERVICE REGISTRY
> cas.serviceRegistry.initFromJson=false
> [email protected]
> :user/cas-6_1-service-definitions.git
> cas.serviceRegistry.git.branchesToClone=master
> cas.serviceRegistry.git.activeBranch=master
> cas.serviceRegistry.git.pushChanges=true
>
>
> now in the management.properties, if I try and put the
> cas.serviceRegistry.git.privateKeyPath entry in there, it blows up and
> says that's not a proper key property and won't even start
>
> it appears as thought the commitController is not happy with my settings.
> I had a HECK of a time finding the mgmt.versionControl.servicesRepo key. I
> found it on another site, but haven't actually seen it referenced on any of
> apereo's docs. they reference it as mgmt.servicesRepo, which always blew up
> as an unknown key.
>
> that leads me to think, there's another key I need, that I just don't know
> about... maybe?
>
> any insight would be wonderful! thanks!
>
> --
> - 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/20003e1c-e2fb-4d44-9982-52a540e4db4a%40apereo.org
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/20003e1c-e2fb-4d44-9982-52a540e4db4a%40apereo.org?utm_medium=email&utm_source=footer>
> .
>
--
- 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/CAC_RtEZMnpRGPyAXZ%2Bs_27Z9VnmZdJJVZT34E-FbU%2BsNq11M9Q%40mail.gmail.com.