autoDll ?

v.

Il giorno lun 28 feb 2022 alle ore 23:37 Pablo Vidaurri <
[email protected]> ha scritto:

> Db, Schema has changed, not sure if it happened in 6.4.5 or another 6.4.x
> version. Have you set your autoDll to drop and recreate the tables? I
> believe all tickets are now stored in cas_tickets table.
>
> -psv
>
> On Wednesday, February 23, 2022 at 3:34:18 AM UTC-6 Vittore Zen wrote:
>
>> Same problem.
>> TGT is saved into couchdb but ST is not saved; TS is saved only inside
>> TGT.
>> If I disable couchdb storage all works fine.
>>
>> v.
>>
>>
>>
>> Il giorno mercoledì 12 gennaio 2022 alle 21:39:49 UTC+1 Matthew Gordon ha
>> scritto:
>>
>>> Full Stack:
>>>
>>> org.springframework.webflow.execution.ActionExecutionException:
>>> Exception thrown executing
>>> org.apereo.cas.web.flow.logout.TerminateSessionAction@2e33cdba in state
>>> 'terminateSession' of flow 'logout' -- action execution attributes were
>>> 'map[[empty]]' at
>>> org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:62)
>>> at
>>> org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)
>>> at
>>> org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
>>> at
>>> org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
>>> at
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)
>>> at org.springframework.webflow.engine.State.enter(State.java:194) at
>>> org.springframework.webflow.engine.Flow.start(Flow.java:527) at
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
>>> at
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:223)
>>> at
>>> org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.java:139)
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) at
>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
>>> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
>>> at
>>> org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:485)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
>>> at com.sun.proxy.$Proxy351.launchExecution(Unknown Source) at
>>> org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:264)
>>> at
>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064)
>>> at
>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
>>> at
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
>>> at
>>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) at
>>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.cas.web.support.AuthenticationCredentialsThreadLocalBinderClearingFilter.doFilter(AuthenticationCredentialsThreadLocalBinderClearingFilter.java:28)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.cas.web.support.filters.RequestParameterPolicyEnforcementFilter.doFilter(RequestParameterPolicyEnforcementFilter.java:401)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.cas.web.support.filters.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:200)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.cas.web.support.filters.AddResponseHeadersFilter.doFilter(AddResponseHeadersFilter.java:62)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:204)
>>> at
>>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
>>> at
>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
>>> at
>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.cas.logging.web.ThreadContextMDCServletFilter.doFilter(ThreadContextMDCServletFilter.java:99)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:66)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126)
>>> at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)
>>> at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>> at
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>>> at
>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
>>> at
>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
>>> at
>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
>>> at
>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
>>> at
>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
>>> at
>>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>>> at
>>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>>> at
>>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>>> at
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>> at java.base/java.lang.Thread.run(Thread.java:829) Caused by:
>>> org.ektorp.DocumentNotFoundException: nothing found on db path:
>>> /ticket_registry/ST-9--PuizaODkiWXDZYrvpC2Wq-9cXQ-CAST1, Response body:
>>> null at
>>> org.ektorp.http.StdResponseHandler.createDbAccessException(StdResponseHandler.java:40)
>>> at org.ektorp.http.StdResponseHandler.error(StdResponseHandler.java:91) at
>>> org.ektorp.http.RestTemplate.handleResponse(RestTemplate.java:126) at
>>> org.ektorp.http.RestTemplate.head(RestTemplate.java:109) at
>>> org.ektorp.impl.StdCouchDbConnector.getCurrentRevision(StdCouchDbConnector.java:328)
>>> at
>>> org.apereo.cas.couchdb.tickets.TicketRepository.getCurrentRevision(TicketRepository.java:47)
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) at
>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
>>> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
>>> at
>>> org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:485)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
>>> at
>>> org.apereo.cas.couchdb.tickets.TicketRepository$$EnhancerBySpringCGLIB$$cfd778ae.getCurrentRevision(<generated>)
>>> at
>>> org.apereo.cas.ticket.registry.CouchDbTicketRegistry.deleteSingleTicket(CouchDbTicketRegistry.java:40)
>>> at
>>> org.apereo.cas.ticket.registry.AbstractTicketRegistry.lambda$deleteChildren$2(AbstractTicketRegistry.java:195)
>>> at
>>> java.base/java.util.LinkedHashMap$LinkedKeySet.forEach(LinkedHashMap.java:559)
>>> at
>>> org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteChildren(AbstractTicketRegistry.java:194)
>>> at
>>> org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:134)
>>> at
>>> org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:125)
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) at
>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
>>> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
>>> at
>>> org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:485)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
>>> at com.sun.proxy.$Proxy140.deleteTicket(Unknown Source) at
>>> org.apereo.cas.AbstractCentralAuthenticationService.deleteTicket(AbstractCentralAuthenticationService.java:167)
>>> at
>>> org.apereo.cas.AbstractCentralAuthenticationService$$FastClassBySpringCGLIB$$ba3315a1.invoke(<generated>)
>>> at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
>>> at
>>> org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
>>> at
>>> org.apereo.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(AuditTrailManagementAspect.java:186)
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) at
>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
>>> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
>>> at
>>> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
>>> at
>>> org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
>>> at
>>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
>>> at
>>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
>>> at
>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
>>> at
>>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
>>> at
>>> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
>>> at
>>> org.apereo.cas.DefaultCentralAuthenticationService$$EnhancerBySpringCGLIB$$ee1c3230.deleteTicket(<generated>)
>>> at
>>> org.apereo.cas.web.flow.logout.TerminateSessionAction.initiateSingleLogout(TerminateSessionAction.java:207)
>>> at
>>> org.apereo.cas.web.flow.logout.TerminateSessionAction.terminate(TerminateSessionAction.java:131)
>>> at
>>> org.apereo.cas.web.flow.logout.TerminateSessionAction.doExecute(TerminateSessionAction.java:96)
>>> at
>>> org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method) at
>>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> at
>>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
>>> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
>>> at
>>> org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:485)
>>> at
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>> at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
>>> at com.sun.proxy.$Proxy315.execute(Unknown Source) at
>>> org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
>>> ... 98 more
>>>
>>> On Wednesday, January 12, 2022 at 2:26:05 PM UTC-5 Matthew Gordon wrote:
>>>
>>>> Hello I am building CAS with the following:
>>>>
>>>> support-ldap,support-git-service-registry,support-gauth,support-couchdb-core,support-gauth-couchdb,support-saml,support-saml-idp,support-oidc,support-couchdb-ticket-registry,support-surrogate-webflow,support-surrogate-authentication-couchdb,webapp
>>>>
>>>> Connected to Active Directory as the LDAP.
>>>>
>>>> Authentication works.
>>>>
>>>> I regularly see this in the cas.log, and don't know if it is the
>>>> underlying issue?:
>>>> 2022-01-12 13:59:50,300 WARN
>>>> [org.springframework.web.context.support.SpringBeanAutowiringSupport] -
>>>> <Current WebApplicationContext is not available for processing of
>>>> GoogleAuthenticatorCouchDbTokenRepository: Make sure this class gets
>>>> constructed in a Spring web application after the Spring
>>>> WebApplicationContext has been initialized. Proceeding without injection.>
>>>>
>>>> I get this when I try to log out or if I disable single login in on a
>>>> CAS service, and attempt to login to it with MFA enabled. Both cases
>>>> generate:
>>>> org.springframework.webflow.execution.ActionExecutionException:
>>>> Exception thrown executing
>>>> org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction@26daf146
>>>> in state 'createTicketGrantingTicket' of flow 'login' -- action execution
>>>> attributes were 'map[[empty]]'
>>>>
>>>> It basically looks like it can't find the ST or MFA info in couchdb
>>>> that it expects, so fail.
>>>>
>>>> Also couchdb does not create any of the required design documents or
>>>> views in the Databases it creates that generate other errors, if you don't
>>>> create them from the code repo. More about that here:
>>>> https://groups.google.com/a/apereo.org/g/cas-user/c/NjJsaQQXekY
>>>>
>>>> Is this the best place to get help, or should I report issues somewhere
>>>> else?
>>>>
>>>> Is anyone successfully using couchdb in prod, for their ticket repo,
>>>> mfa, or anything?
>>>>
>>>> Thank you,
>>>> Matt
>>>>
>>>>
>>>>

-- 
- 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/CAO79vSAcE5D34R0faC9YGKgpddnfjXQPJx45GdGk7wG3wZXOxA%40mail.gmail.com.

Reply via email to