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/co >>>> nfig/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.e >>>>> xecution.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: >>>>>>> >>>>>>> >>>>>>> <https://lh3.googleusercontent.com/-bqF7r6WYFDU/Wn2r6Zgza6I/AAAAAAAASso/CtOtDNX7IF0Y2Ua0Eb8GyWbXuYdCSbEJgCLcBGAs/s1600/Screen%2BShot%2B2018-02-09%2Bat%2B9.10.22%2BAM.png> >>>>>>> >>>>>>> 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.re >>>>>>> <http://gine.impl.flowexecutionimpl.re/> >>>>>>> sume(FlowExecutionImpl.java:263) ~[spring-webflow-2.4.6.RELEASE >>>>>>> .jar:2.4.6.RELEASE] >>>>>>> at org.springframework.webflow.executor.FlowExecutorImpl.resume >>>>>>> Execution(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.plug >>>>>>> in.ClientFlowExecutionRepositoryException: Error encoding flow >>>>>>> execution >>>>>>> at org.apereo.spring.webflow.plugin.ClientFlowExecutionReposito >>>>>>> ry.getKey(ClientFlowExecutionRepository.java:114) >>>>>>> ~[spring-webflow-client-repo-1.0.3.jar:1.0.3] >>>>>>> at org.springframework.webflow.engine.impl.FlowExecutionImpl.as >>>>>>> <http://gine.impl.flowexecutionimpl.as/> >>>>>>> signKey(FlowExecutionImpl.java:419) ~[spring-webflow-2.4.6.RELEASE >>>>>>> .jar:2.4.6.RELEASE] >>>>>>> at org.springframework.webflow.engine.impl.RequestControlContex >>>>>>> tImpl.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.re >>>>>>> <http://gine.impl.flowexecutionimpl.re/> >>>>>>> sume(FlowExecutionImpl.java:263) ~[spring-webflow-2.4.6.RELEASE >>>>>>> .jar:2.4.6.RELEASE] >>>>>>> at org.springframework.webflow.executor.FlowExecutorImpl.resume >>>>>>> Execution(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.plug >>>>>>> in.ClientFlowExecutionRepositoryException: Error encoding flow >>>>>>> execution >>>>>>> at org.apereo.spring.webflow.plugin.ClientFlowExecutionReposito >>>>>>> ry.getKey(ClientFlowExecutionRepository.java:114) >>>>>>> ~[spring-webflow-client-repo-1.0.3.jar:1.0.3] >>>>>>> at org.springframework.webflow.engine.impl.FlowExecutionImpl.as >>>>>>> <http://gine.impl.flowexecutionimpl.as/> >>>>>>> signKey(FlowExecutionImpl.java:419) ~[spring-webflow-2.4.6.RELEASE >>>>>>> .jar:2.4.6.RELEASE] >>>>>>> at org.springframework.webflow.engine.impl.RequestControlContex >>>>>>> tImpl.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.ex >>>>>>> ecute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE >>>>>>> .jar:2.4.6.RELEASE] >>>>>>> at org.springframework.webflow.engine.impl.RequestControlContex >>>>>>> tImpl.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/b3ba >>>>>>> 67e2-e0ca-4a8e-853b-041343564b9f%40apereo.org >>>>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/b3ba67e2-e0ca-4a8e-853b-041343564b9f%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/651d >>>>> f904-b94c-4d3b-9915-ddfd969c5924%40apereo.org >>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/651df904-b94c-4d3b-9915-ddfd969c5924%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/2A0C >>>>> 53A0-2FFF-4F1E-AAAE-B9647B352CB5%40gmail.com >>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/2A0C53A0-2FFF-4F1E-AAAE-B9647B352CB5%40gmail.com?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/ap >>>> ereo.org/d/msgid/cas-user/CAMY5midKW9nbuUSutNPX5%2BKbmKPfaGn >>>> MRfjmVosqwBESC9KNgw%40mail.gmail.com >>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAMY5midKW9nbuUSutNPX5%2BKbmKPfaGnMRfjmVosqwBESC9KNgw%40mail.gmail.com?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/ap >>>> ereo.org/d/msgid/cas-user/4B953717-A37E-4E87-AD49-2BF69A7124 >>>> C1%40gmail.com >>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/4B953717-A37E-4E87-AD49-2BF69A7124C1%40gmail.com?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/ap >>> ereo.org/d/msgid/cas-user/CAMY5mifAJL3Wiq%2Bh8HdAbUGB0SEaARN >>> ZH--s5wcJ_%3DamQtER9w%40mail.gmail.com >>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAMY5mifAJL3Wiq%2Bh8HdAbUGB0SEaARNZH--s5wcJ_%3DamQtER9w%40mail.gmail.com?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/ap >>> ereo.org/d/msgid/cas-user/726B28A6-E38E-425D-8ECD-5A6040905A >>> 48%40gmail.com >>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/726B28A6-E38E-425D-8ECD-5A6040905A48%40gmail.com?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/ap >> ereo.org/d/msgid/cas-user/CAMY5mieAUtjrCY1UgJwF%3DBUDy_2%2B% >> 2BMntboaea4EkH6sWQnZ6rA%40mail.gmail.com >> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAMY5mieAUtjrCY1UgJwF%3DBUDy_2%2B%2BMntboaea4EkH6sWQnZ6rA%40mail.gmail.com?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/ap >> ereo.org/d/msgid/cas-user/F3240192-8B43-4275-92A4-44EFFCCEFC >> C1%40gmail.com >> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/F3240192-8B43-4275-92A4-44EFFCCEFCC1%40gmail.com?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/CAMY5midbkPD7vFCpoQRb90zKLROcc > 4RQQe01uiA_3GCXo5TnWg%40mail.gmail.com > <https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAMY5midbkPD7vFCpoQRb90zKLROcc4RQQe01uiA_3GCXo5TnWg%40mail.gmail.com?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/2B4CEB0E-10CF-46AA-8D9B- > A04FCA5CA2BE%40gmail.com > <https://groups.google.com/a/apereo.org/d/msgid/cas-user/2B4CEB0E-10CF-46AA-8D9B-A04FCA5CA2BE%40gmail.com?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/CAMY5mifvs%3D_2OmiV2Prjw4KOThdsN1vS2CCN0Zk2FYgc5RjHZQ%40mail.gmail.com.
