The main “bug tracker” for CAS project is an open pull request ;-) May I suggest you first try 5.3.0-RC3-SNAPSHOT…
D. From: Brian Davidson <[email protected]> Reply: [email protected] <[email protected]> Date: February 22, 2018 at 3:03:46 PM To: [email protected] <[email protected]> Subject: Re: [cas-user] CAS 5.2.3 "500:Internal Server Error" with Groovy Do we need to open an issue in a bug tracker? If so, where? Any suggestions where to start poking in the code to try to debug this some more? As best we can tell it’s throwing an exception in Spring web flow (which unfortunately we haven’t used so we’ve got a learning curve there). And it looks like there’s a CAS plugin for web flow, so I’m hoping that might be a good place to put some debugging code. Thanks, Brian On Feb 10, 2018, at 12:48 PM, Man H <[email protected]> wrote: Indeed!! El sábado, 10 de febrero de 2018, Dmitriy Kopylenko <[email protected]> escribió: Thanks for confirming. Sounds like a bug to me. D. On Sat, Feb 10, 2018 at 12:01 PM -0500, "Brian Davidson" <[email protected]> wrote: I have tried that. Duo works when I disable the bypass facility. When I enable it, if bypass script returns false, single factor works and I don’t get a 500 error. If the groovy script returns true, I get the 500 error. So, the Duo integration is working. The bypass groovy script definitely is getting called, and it definitely should return a boolean, not a string. 2018-02-09 15:04:55,638 DEBUG [org.springframework.webflow.engine.impl.FlowExecutionImpl] - <Attempting to handle [org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'viewLoginFormDuo' of flow 'mfa-duo'] with root cause [java.io.NotSerializableException: org.springframework.core.io.UrlResource]> Seems like Spring web flow with the duo flow is not happy with something when the bypass script is in place, but it’s fine when bypass isn’t in place. Thanks! Brian On Feb 10, 2018, at 11:38 AM, Dmitriy Kopylenko <[email protected]> wrote: Let me suggest to get the Groovy script out of equation completely. Switch this groovy bypass off, and try to perform entire duo 2 factor authentication transaction. If it completes successfully and then you again enable groovy bypass and then after it you get the failures that you are seeing, then the problem indeed is somewhere in that bypass facility. Cheers, D. On Sat, Feb 10, 2018 at 11:29 AM -0500, "Brian Davidson" <[email protected]> wrote: Switching the function to return a String instead of a boolean, I get: 2018-02-10 11:25:06,033 ERROR [org.apereo.cas.util.ScriptingUtils] - <Result [mfa-duo is of type class java.lang.String when we were expecting class java.lang.Boolean> java.lang.ClassCastException: Result [mfa-duo is of type class java.lang.String when we were expecting class java.lang.Boolean … 2018-02-10 11:25:06,952 ERROR [org.apereo.cas.authentication.GroovyMultifactorAuthenticationProviderBypass] - <null> java.lang.NullPointerException: null at org.apereo.cas.authentication.GroovyMultifactorAuthenticationProviderBypass.shouldMultifactorAuthenticationProviderExecute(GroovyMultifactorAuthenticationProviderBypass.java:40) ~[cas-server-core-authentication-mfa-5.2.2-SNAPSHOT.jar:5.2.2-SNAPSHOT] … On Feb 10, 2018, at 10:14 AM, Man H <[email protected]> wrote: Try returning string "mfa-duo" or null El sábado, 10 de febrero de 2018, Brian Davidson <[email protected]> escribió: I changed it from info to warn: 2018-02-10 08:54:07,061 WARN [org.apereo.cas.authentication.GroovyMultifactorAuthenticationProviderBypass] - <Evaluating principal attributes [businessCategory:[Employee, Staff], cn:Brian Davidson, ctCalDefaultNoteReminder:0:0, ctCalDefaultReminder:0:10, ctCalDefaultTaskReminder:0:0, ctCalDisplayPrefs:4:480:1080:1:30:190:2, ctCalLanguageId:0, ctCalNotifMechanism:1, ctCalOperatingPrefs:0:255:0:0:0:0:0:1440:0:1440:0:0:1440:0:1440:0:0:1440:0:1440:0:0:1440:0:1440:0:0:1440:0:1440:0:0:1440:0:1440:0:0:1440:0:1440, ctCalPasswordRequired:1, ctCalPublishedType:0, ctCalRefreshPrefs:1:60, ctCalSMSTimeRange:0:0, ctCalSysopCanWritePassword:0, ctCalTimezone:0, ctCalXItemId:10101:02238, eduPersonAffiliation:[member, staff], gecos:Brian Davidson, gidNumber:5137, givenName:Brian, gmuBannerGUID:REDACTED, gmuemployeestatus:C, gmugnumber:REDACTED, gmuMLPwdChanged:20170127190453Z, gmurup:true, gmusecurityquiz:1487691778, homeDirectory:REDACTED, iplanet-am-modifiable-by:cn=Top-level Admin Role,o=gmu.edu, l:opted-in-201103021755, loginShell:/bin/bash, mail:REDACTED, mailAllowedServiceAccess:-imap,pop,http,smtp:*, mailAlternateAddress:REDACTED, mailDeliveryOption:mailbox, mailHost:gmuedu.onmicrosoft.com, mailQuota:1048576000, mailRoutingAddress:REDACTED, nsmsgDisallowAccess:imap pop http smtp, nswmExtendedUserPrefs:[meTrashFolder=Trash, meSentFolder=Sent, meDraftFolder=Drafts, meInitialized=true], objectClass:[posixAccount, sunUCPreferences, mailrecipient, iplanetPreferences, inetLocalMailRecipient, iplanet-am-managed-person, inetOrgPerson, inetAdmin, ctCalUser, inetMailUser, iplanet-am-user-service, gmuPerson, shadowAccount, userPresenceProfile, inetUser, top, person, organizationalPerson, ipuser, eduPerson, account], ou=people,o=gmu.edu,o=pab, sn:Davidson, uid:REDACTED, uidNumber:888, userPassword:REDACTED]> On Feb 10, 2018, at 8:43 AM, Man H <[email protected]> wrote: Could you try this def boolean run(final Object... args){ def authentication = args[0] def principal = args[1] def service = args[2] def provider = args[3] def logger = args[4] def httpRequest = args[5] logger.info("Evaluating principal attributes ${principal.attributes}") return true } El sábado, 10 de febrero de 2018, Brian Davidson <[email protected]> escribió: Removed that dependency and still git the same 500 error and same stack trace. On Feb 10, 2018, at 7:20 AM, Man H <[email protected]> wrote: Why you hace this <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <type>jar</type> </dependency> El sábado, 10 de febrero de 2018, Brian Davidson <[email protected]> escribió: Running on apache-tomcat-8.5.24, so that should be servlet v3.1.x. Yes, this is CAS version 5.2.2. CAS w/ Duo works with no bypass groovy script in place. CAS works with bypass groovy script that returns false. We’re just getting the exception when the groovy script returns true. Thanks again for all the help! External A CAS deployment may be deployed to any number of external servlet containers. The container MUST support the servlet specification v3.1.x at a minimum. On Feb 10, 2018, at 6:37 AM, Man H <[email protected]> wrote: Assuming you are on 5.2.2 El sábado, 10 de febrero de 2018, Brian Davidson <[email protected]> escribió: I meant to add, our pom.xml has the following dependencies (in case we’re missing something): <dependencies> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-webapp-${app.server}</artifactId> <version>${cas.version}</version> <type>war</type> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-ldap</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-saml</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-hazelcast-ticket-registry</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-duo</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-json-service-registry</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.17.1-GA</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <type>jar</type> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-webflow</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-web</artifactId> <version>${cas.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-configuration</artifactId> <version>${cas.version}</version> <type>jar</type> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-authentication</artifactId> <version>${cas.version}</version> </dependency> </dependencies> On Feb 9, 2018, at 5:19 PM, Man H <[email protected]> wrote: add <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-authentication</artifactId> <version>${cas.version}</version> </dependency> with: cas.authn.mfa.duo[0].bypass.type=GROOVY cas.authn.mfa.duo[0].bypass.groovy.location=file:/etc/cas/config/mfaGroovyTrigger.groovy you should get 2018-02-09 19:10:39,145 DEBUG [org.apereo.cas.authentication.GroovyMultifactorAuthenticationProviderBypass] - <Evaluating multifactor authentication bypass properties for principal [casuser], service [null] and provider [DefaultDuoMultifactorAuthenticationProvider] via Groovy script [URL [file:/etc/cas/config/mfaGroovyTrigger.groovy]]> 2018-02-09 17:11 GMT-03:00 Brian Davidson <[email protected]>: Just to add a bit to what Brian M. provided (I’m also a Brian, and a co-worker of Brian M’s): We have Duo MFA working if we comment out: cas.authn.mfa.duo[0].bypass.type=GROOVY cas.authn.mfa.duo[0].bypass.groovy.location=file:///etc/cas/selectiveDuo.groovy We did find that CAS was unable to check to see if the user exists in Duo if we used the “CAS” integration in Duo. But it works if we set up the integration as “Auth API”. We haven’t touched webflow. With the groovy script in place, When we enable GROOVY bypass script, we get: 2018-02-09 15:04:55,638 DEBUG [org.springframework.webflow.engine.impl.FlowExecutionImpl] - <Attempting to handle [org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'viewLoginFormDuo' of flow 'mfa-duo'] with root cause [java.io.NotSerializableException: org.springframework.core.io.UrlResource]> As well as the stack trace Brian M. provided. cas.authn.mfa.duo[0].bypass.groovy.location was the missing piece yesterday. Dug through source code to find that. We’re happy to provide updates to the documentation once we get this working. Thanks for the help! On Feb 9, 2018, at 10:14 AM, brian mancuso <[email protected]> wrote: Anything that says "REMOVED" is just stuff I pulled out before posting it. I didn't want to post any private/sensitive information. On Friday, February 9, 2018 at 9:59:12 AM UTC-5, Manfredo Hopp wrote: What do you mean by REMOVED in properties . El viernes, 9 de febrero de 2018, brian mancuso <[email protected]> escribió: Hey all, I was originally trying to setup some custom triggers to determine who should use MFA and who is allowed to bypass. I have since been directed towards Groovy to simplify things, but I'm still having some trouble. At this point, the Groovy script's purpose is strictly to test if a certain user will bypass MFA while others will not. Here's my setup: /etc/cas/config/cas.properties ## # Duo security 2fa authentication provider # https://www.duosecurity.com/docs/duoweb#1.-generate-an-akey # cas.authn.mfa.duo[0].rank=0 cas.authn.mfa.duo[0].duoApiHost=REMOVED cas.authn.mfa.duo[0].duoIntegrationKey=REMOVED cas.authn.mfa.duo[0].duoSecretKey=REMOVED cas.authn.mfa.duo[0].duoApplicationKey=REMOVED cas.authn.mfa.duo[0].id=mfa-duo cas.authn.mfa.globalProviderId=mfa-duo cas.authn.mfa.globalFailureMode=OPEN cas.authn.mfa.duo[0].bypass.type=GROOVY cas.authn.mfa.duo[0].bypass.groovy.location=file:///etc/cas/selectiveDuo.groovy /etc/cas/selectiveDuo.groovy def boolean run(final Object... args) { def authentication = args[0] def principal = args[1] def service = args[2] def provider = args[3] def logger = args[4] def httpRequest = args[5] logger.info("Evaluating principal attributes ${principal.attributes}") def bypass = principal.attributes['uid'] if ((bypass.contains("testuser") && provider.id == "mfa-duo") { logger.info("Skipping bypass for principal ${principal.id}") return false } return true } When I try to login though, whenever a user would be sent to DUO, I get a 500 error: Here's a small snippet from the output: 2018-02-09 09:04:05,717 DEBUG [org.apereo.cas.web.FlowExecutionExceptionResolver] - <Ignoring the received exception due to a type mismatch> org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'viewLoginFormDuo' of flow 'mfa-duo' at org.springframework.webflow.engine.impl.FlowExecutionImpl.wrap(FlowExecutionImpl.java:573) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151] Caused by: org.apereo.spring.webflow.plugin.ClientFlowExecutionRepositoryException: Error encoding flow execution at org.apereo.spring.webflow.plugin.ClientFlowExecutionRepository.getKey(ClientFlowExecutionRepository.java:114) ~[spring-webflow-client-repo-1.0.3.jar:1.0.3] at org.springframework.webflow.engine.impl.FlowExecutionImpl.assignKey(FlowExecutionImpl.java:419) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.RequestControlContextImpl.assignFlowExecutionKey(RequestControlContextImpl.java:193) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] Caused by: java.io.NotSerializableException: org.springframework.core.io.UrlResource at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[?:1.8.0_151] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_151] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_151] 2018-02-09 09:04:05,717 ERROR [org.springframework.boot.web.support.ErrorPageFilter] - <Forwarding to error page from request [/login] due to exception [Exception thrown in state 'viewLoginFormDuo' of flow 'mfa-duo']> org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'viewLoginFormDuo' of flow 'mfa-duo' at org.springframework.webflow.engine.impl.FlowExecutionImpl.wrap(FlowExecutionImpl.java:573) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:263) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.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] Caused by: org.apereo.spring.webflow.plugin.ClientFlowExecutionRepositoryException: Error encoding flow execution at org.apereo.spring.webflow.plugin.ClientFlowExecutionRepository.getKey(ClientFlowExecutionRepository.java:114) ~[spring-webflow-client-repo-1.0.3.jar:1.0.3] at org.springframework.webflow.engine.impl.FlowExecutionImpl.assignKey(FlowExecutionImpl.java:419) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.RequestControlContextImpl.assignFlowExecutionKey(RequestControlContextImpl.java:193) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.ViewState.doEnter(ViewState.java:170) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) ~[spring-webflow-2.4.6.RELEASE.jar:2.4.6.RELEASE] Caused by: java.io.NotSerializableException: org.springframework.core.io.UrlResource at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[?:1.8.0_151] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_151] at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_151] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_151] I posted the output to pastebin since it was too large for just posting here: https://pastebin.com/yNPk4u7n -- - 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/b3ba67e2-e0ca-4a8e-853b-041343564b9f%40apereo.org. -- - 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/651df904-b94c-4d3b-9915-ddfd969c5924%40apereo.org. -- - 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/2A0C53A0-2FFF-4F1E-AAAE-B9647B352CB5%40gmail.com. -- - 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/CAMY5midKW9nbuUSutNPX5%2BKbmKPfaGnMRfjmVosqwBESC9KNgw%40mail.gmail.com. -- - 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/4B953717-A37E-4E87-AD49-2BF69A7124C1%40gmail.com. -- - 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/CAMY5mifAJL3Wiq%2Bh8HdAbUGB0SEaARNZH--s5wcJ_%3DamQtER9w%40mail.gmail.com. -- - 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/726B28A6-E38E-425D-8ECD-5A6040905A48%40gmail.com. -- - 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/CAMY5mieAUtjrCY1UgJwF%3DBUDy_2%2B%2BMntboaea4EkH6sWQnZ6rA%40mail.gmail.com. -- - 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/F3240192-8B43-4275-92A4-44EFFCCEFCC1%40gmail.com. -- - 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/CAMY5midbkPD7vFCpoQRb90zKLROcc4RQQe01uiA_3GCXo5TnWg%40mail.gmail.com. -- - 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/2B4CEB0E-10CF-46AA-8D9B-A04FCA5CA2BE%40gmail.com. -- - 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/CAMY5mifvs%3D_2OmiV2Prjw4KOThdsN1vS2CCN0Zk2FYgc5RjHZQ%40mail.gmail.com. -- - 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/42968FBF-4E13-4EC6-B374-A3739F6FACAD%40gmail.com. -- - 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/20C889EBD5E2E103.605F6678-9158-45B0-8E5F-A4C9A2DAA4C0%40mail.outlook.com. -- - 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/4348DB5A-6914-4F33-8373-F8C1DBF21A49%40gmail.com. -- - Website: https://apereo.github.io/cas - Gitter Chatroom: https://gitter.im/apereo/cas - List Guidelines: To view this discussion on the web visit -- - 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/CAMY5micJyg%2BbVEKo3OOYTnJzmM8OUB2SHm19cCBGi6PbyWYAtg%40mail.gmail.com. -- - 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/24965155-C807-4DF6-939A-C0B0BC42A99D%40gmail.com. -- - 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/etPan.5a8f2300.1add803b.c6f%40unicon.net.
