andOTP is the name of the app I'm use. It is opensource. Regards,
Mickaël Le ven. 22 févr. 2019 à 12:14, Jeremy Van Rooyen <[email protected]> a écrit : > I see your email was cut off :-) > > You are using what and OTP? > > Kind Regards > Jeremy > > On Friday, 22 February 2019 12:45:10 UTC+2, Mickaël wrote: >> >> No problem. >> >> Have you test with another app? I'm using andOTP but I don't think the >> problem is here. >> >> Sincerely, >> >> Mickaël >> >> Le ven. 22 févr. 2019 à 11:39, Jeremy Van Rooyen <[email protected]> a >> écrit : >> >>> Apologies Mickaël, >>> >>> The webapp server and my smartphone's time is the same yes. >>> >>> Kind Regards >>> Jeremy >>> >>> On Friday, 22 February 2019 10:44:11 UTC+2, Mickaël wrote: >>>> >>>> Jeremy, you don't tell me if the webapp server is at the good time and >>>> your smartphone too. >>>> Token are time based, so if one of the device has not the good time, >>>> you will have problems. >>>> >>>> Sincerely, >>>> >>>> Mickaël >>>> >>>> Le ven. 22 févr. 2019 à 08:45, Jeremy Van Rooyen <[email protected]> >>>> a écrit : >>>> >>>>> Thanks for your feedback Mickaël, >>>>> >>>>> For the second part I'm presented by the qrcode and 5 scratch codes. >>>>> When I scan the qrcode my Google Authenticator app on phone accepts it. >>>>> >>>>> Then I click on register and enter the token displayed by the Google >>>>> Authenticator app and it says --> "*Credentials are rejected/invalid >>>>> and authentication attempt has failed.*" >>>>> >>>>> This is what I see in the CAS log file: >>>>> >>>>> *DEBUG >>>>> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - >>>>> <Attempting to authenticate credential >>>>> [OneTimeTokenCredential(token=420195)]>* >>>>> *DEBUG >>>>> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - >>>>> <Attempting authentication of [420195] using >>>>> [GoogleAuthenticatorAuthenticationHandler]>* >>>>> *DEBUG >>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] - >>>>> <Received OTP [420195]>* >>>>> *DEBUG >>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] - >>>>> <Received principal id [jeremy]. Attempting to locate account in >>>>> credential >>>>> repository...>* >>>>> *DEBUG >>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] - >>>>> <Attempting to locate OTP token [420195] in token repository for >>>>> [jeremy]...>* >>>>> *DEBUG >>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] - >>>>> <Attempting to authorize OTP token [420195]...>* >>>>> * WARN >>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] - >>>>> <Authorization of OTP token [420195] has failed>* >>>>> >>>>> It sounds to me that when I use the scratch codes it is stored in the >>>>> mongodb and can be found in the token repository (stored in db), but not >>>>> for the tokens used on Google Authenticator app? Not sure if my >>>>> understanding is correct? >>>>> >>>>> Thanks in advance >>>>> Jeremy >>>>> >>>>> On Thursday, 21 February 2019 16:50:42 UTC+2, Mickaël wrote: >>>>>> >>>>>> Yes Jeremy, that's what I mean. >>>>>> I'm using JPA for my service registry and the CAS manager webapp but >>>>>> it is the same way. >>>>>> >>>>>> For the second part, are you invited to enter your token code >>>>>> displayed by your Google authenticator app? >>>>>> >>>>>> If it doesn't work, perhaps your server is not at the good time. NTP >>>>>> can help you to fix it. >>>>>> >>>>>> Sincerely, >>>>>> >>>>>> Mickaël >>>>>> >>>>>> Le jeu. 21 févr. 2019 à 13:53, Jeremy Van Rooyen <[email protected]> >>>>>> a écrit : >>>>>> >>>>>>> Hi Mickaël, >>>>>>> >>>>>>> On Thursday, 21 February 2019 14:01:17 UTC+2, Mickaël wrote: >>>>>>>> >>>>>>>> Hi Jeremy, >>>>>>>> >>>>>>>> It is a great news about the scratch codes. >>>>>>>> >>>>>>>> I'm not sure to understand your question about qrcode. To register >>>>>>>> a device, it is possible and required when a service is registered on >>>>>>>> your >>>>>>>> CAS with "Google Authentication" as MFA. >>>>>>>> >>>>>>> >>>>>>> Do you mean that the service "Google Authentication" as MFA must be >>>>>>> registered under the services configuration in json format? >>>>>>> >>>>>>> >>>>>>> >>>>>>>> So, at the first login without a registered device, user will be >>>>>>>> ask to scan the qrcode on the screen and save (or print) the scratch >>>>>>>> codes. >>>>>>>> After clilk on the next button, user should enter is token in the >>>>>>>> field to >>>>>>>> finish the registration and be redirected to the service. >>>>>>>> >>>>>>> >>>>>>> This is what happens exactly the way you explain it here. So when I >>>>>>> scan the qrcode with my phone it does not take the codes generated on >>>>>>> the >>>>>>> Google Authenticator app. It however does take the on screen codes. >>>>>>> >>>>>>> I hope this clears up my question? >>>>>>> >>>>>>>> >>>>>>>> Does it answer to your question Jeremy ? >>>>>>>> >>>>>>>> My own question about this system, how to unregistered a device in >>>>>>>> case of change of device or loss ? I don't know URL to do that... >>>>>>>> >>>>>>>> Sincerely, >>>>>>>> >>>>>>>> Mickaël >>>>>>>> >>>>>>>> Le jeudi 21 février 2019 11:32:54 UTC+1, Jeremy Van Rooyen a écrit : >>>>>>>>> >>>>>>>>> Hi Mickaël, >>>>>>>>> >>>>>>>>> Thanks for your reply. >>>>>>>>> >>>>>>>>> So after playing around a bit more it seems like the on screen >>>>>>>>> scratch codes is being stored in the mongodb and using that it allows >>>>>>>>> me to >>>>>>>>> authenticate perfectly. >>>>>>>>> >>>>>>>>> The next question is how would one register via the qrcode using >>>>>>>>> the Google Authenticator app on phone? Or am I not understanding >>>>>>>>> something? >>>>>>>>> >>>>>>>>> Kind Regards >>>>>>>>> Jeremy >>>>>>>>> >>>>>>>>> On Tuesday, 19 February 2019 10:30:29 UTC+2, Mickaël wrote: >>>>>>>>>> >>>>>>>>>> Hello, >>>>>>>>>> >>>>>>>>>> Are you sure there is anything register in your Mongo database ? >>>>>>>>>> Scratch codes and token are store in DB for each user in 2 different >>>>>>>>>> tables. >>>>>>>>>> >>>>>>>>>> It is strange to see that, normally "WHO" is the user, not the >>>>>>>>>> token : >>>>>>>>>> *WHO: 253227* >>>>>>>>>> *WHAT: Supplied credentials: [[token=253227]]* >>>>>>>>>> >>>>>>>>>> For information, I am using gauth with MariaDB without any issue. >>>>>>>>>> >>>>>>>>>> Mickaël >>>>>>>>>> >>>>>>>>>> Le jeudi 15 février 2018 09:53:52 UTC+1, Janina Byky a écrit : >>>>>>>>>>> >>>>>>>>>>> Hello, >>>>>>>>>>> >>>>>>>>>>> I'm trying to setup CAS 5.2.2 with Google Authenticator as >>>>>>>>>>> second auth factor for specified services. CAS is running over LDAP >>>>>>>>>>> (AD) >>>>>>>>>>> and GAuth based on mongo. So far everything was great, build >>>>>>>>>>> succeed, GAuth >>>>>>>>>>> qrcode appears, user registers and now it's time for TOKEN form. >>>>>>>>>>> I'm typing >>>>>>>>>>> all scratch codes and those generated by Google Authenticator, but >>>>>>>>>>> every >>>>>>>>>>> single attempt is unsuccessful. Also there's no collection created >>>>>>>>>>> to store >>>>>>>>>>> tokens in mongo. Only GAuthRepository is created with proper values >>>>>>>>>>> of >>>>>>>>>>> registered users. >>>>>>>>>>> >>>>>>>>>>> *cas.properties* >>>>>>>>>>> >>>>>>>>>>> cas.authn.accept.users= >>>>>>>>>>> >>>>>>>>>>> cas.authn.ldap[0].order=0 >>>>>>>>>>> cas.authn.ldap[0].type=AUTHENTICATED >>>>>>>>>>> cas.authn.ldap[0].ldapUrl={CUT} >>>>>>>>>>> cas.authn.ldap[0].connectionStrategy=DEFAULT >>>>>>>>>>> cas.authn.ldap[0].useSsl=true >>>>>>>>>>> cas.authn.ldap[0].connectTimeout=15000 >>>>>>>>>>> cas.authn.ldap[0].subtreeSearch=true >>>>>>>>>>> cas.authn.ldap[0].baseDn={CUT} >>>>>>>>>>> >>>>>>>>>>> cas.authn.ldap[0].userFilter=(|(sAMAccountName={user})(userPrincipalName={user})) >>>>>>>>>>> cas.authn.ldap[0].bindDn={CUT} >>>>>>>>>>> cas.authn.ldap[0].bindCredential={CUT} >>>>>>>>>>> cas.authn.ldap[0].enhanceWithEntryResolver=true >>>>>>>>>>> cas.authn.ldap[0].principalAttributeId=sAMAccountName >>>>>>>>>>> cas.authn.ldap[0].principalAttributePassword= >>>>>>>>>>> cas.authn.ldap[0].usePasswordPolicy=true >>>>>>>>>>> >>>>>>>>>>> cas.authn.ldap[0].principalAttributeList=sn,cn:commonName,givenName,sAMAccountName,memberOf >>>>>>>>>>> cas.authn.ldap[0].allowMultiplePrincipalAttributeValues=true >>>>>>>>>>> cas.authn.ldap[0].poolPassivator=NONE >>>>>>>>>>> cas.authn.ldap[0].minPoolSize=2 >>>>>>>>>>> cas.authn.ldap[0].maxPoolSize=15 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.globalProviderId=mfa-gauth >>>>>>>>>>> cas.authn.mfa.globalFailureMode=CLOSED >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.gauth.issuer=TEST >>>>>>>>>>> cas.authn.mfa.gauth.codeDigits=6 >>>>>>>>>>> cas.authn.mfa.gauth.timeStepSize=60 >>>>>>>>>>> cas.authn.mfa.gauth.windowSize=3 >>>>>>>>>>> cas.authn.mfa.gauth.label=TEST >>>>>>>>>>> cas.authn.mfa.gauth.rank=0 >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.gauth.cleaner.enabled=true >>>>>>>>>>> cas.authn.mfa.gauth.cleaner.schedule.startDelay=20000 >>>>>>>>>>> cas.authn.mfa.gauth.cleaner.schedule.repeatInterval=60000 >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.gauth.bypass.type=DEFAULT >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.gauth.mongo.clientUri=${mongo.uri} >>>>>>>>>>> cas.authn.mfa.gauth.mongo.dropCollection=false >>>>>>>>>>> cas.authn.mfa.gauth.mongo.collection=GAuthRepository >>>>>>>>>>> >>>>>>>>>>> cas.authn.mfa.gauth.mongo.tokenCollection=GoogleAuthenticatorMongoDbTokenRepository >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *pom.xml* >>>>>>>>>>> >>>>>>>>>>> <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-gauth</artifactId> >>>>>>>>>>> <version>${cas.version}</version> >>>>>>>>>>> </dependency> >>>>>>>>>>> <dependency> >>>>>>>>>>> <groupId>org.apereo.cas</groupId> >>>>>>>>>>> >>>>>>>>>>> <artifactId>cas-server-support-gauth-mongo</artifactId> >>>>>>>>>>> <version>${cas.version}</version> >>>>>>>>>>> </dependency> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *catalina.log* >>>>>>>>>>> >>>>>>>>>>> 2018-02-15 09:31:13,952 DEBUG >>>>>>>>>>> [org.apereo.cas.authentication.RegisteredServiceAuthenticationHandlerResolver] >>>>>>>>>>> - <Authentication handlers used for this transaction are >>>>>>>>>>> [GoogleAuthenticatorAuthenticationHandler,LdapAuthenticationHandler,HttpBasedServiceCredentialsAuthenticationHandler]> >>>>>>>>>>> 2018-02-15 09:31:13,953 DEBUG >>>>>>>>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] >>>>>>>>>>> - >>>>>>>>>>> <Received OTP [*253227*]> >>>>>>>>>>> 2018-02-15 09:31:13,954 DEBUG >>>>>>>>>>> [org.apereo.cas.adaptors.gauth.GoogleAuthenticatorAuthenticationHandler] >>>>>>>>>>> - >>>>>>>>>>> <Received principal id *[j.byky*]> >>>>>>>>>>> 2018-02-15 09:31:13,970 DEBUG >>>>>>>>>>> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - >>>>>>>>>>> <[GoogleAuthenticatorAuthenticationHandler] exception details: >>>>>>>>>>> [Failed to >>>>>>>>>>> authenticate code *253227*].> >>>>>>>>>>> 2018-02-15 09:31:13,971 DEBUG >>>>>>>>>>> [org.apereo.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandler] >>>>>>>>>>> - <Credential is not one of username/password and is not accepted by >>>>>>>>>>> handler [LdapAuthenticationHandler]> >>>>>>>>>>> 2018-02-15 09:31:13,972 ERROR >>>>>>>>>>> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - >>>>>>>>>>> <*Authentication >>>>>>>>>>> has failed. Credentials may be incorrect or CAS cannot find >>>>>>>>>>> authentication >>>>>>>>>>> handler that supports [[token=253227]] of type >>>>>>>>>>> [GoogleAuthenticatorTokenCredential]*.> >>>>>>>>>>> 2018-02-15 09:31:13,976 INFO >>>>>>>>>>> [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - >>>>>>>>>>> <Audit >>>>>>>>>>> trail record BEGIN >>>>>>>>>>> ============================================================= >>>>>>>>>>> *WHO: 253227* >>>>>>>>>>> *WHAT: Supplied credentials: [[token=253227]]* >>>>>>>>>>> ACTION: AUTHENTICATION_SUCCESS >>>>>>>>>>> APPLICATION: CAS >>>>>>>>>>> WHEN: Thu Feb 15 09:31:13 CET 2018 >>>>>>>>>>> CLIENT IP ADDRESS: 10.100.100.20 >>>>>>>>>>> SERVER IP ADDRESS: 10.40.0.2 >>>>>>>>>>> ============================================================= >>>>>>>>>>> >>>>>>>>>>> > >>>>>>>>>>> 2018-02-15 09:31:13,978 ERROR >>>>>>>>>>> [org.apereo.cas.web.flow.resolver.impl.AbstractCasWebflowEventResolver] >>>>>>>>>>> - >>>>>>>>>>> <1 errors, 0 successes> >>>>>>>>>>> org.apereo.cas.authentication.AuthenticationException: 1 errors, >>>>>>>>>>> 0 successes >>>>>>>>>>> at >>>>>>>>>>> org.apereo.cas.authentication.PolicyBasedAuthenticationManager.evaluateFinalAuthentication(PolicyBasedAuthenticationManager.java:400) >>>>>>>>>>> ~[cas-server-core-authentication-5.2.2.jar:5.2.2] >>>>>>>>>>> at >>>>>>>>>>> org.apereo.cas.authentication.PolicyBasedAuthenticationManager.authenticateInternal(PolicyBasedAuthenticationManager.java:380) >>>>>>>>>>> ~[cas-server-core-authentication-5.2.2.jar:5.2.2] >>>>>>>>>>> at >>>>>>>>>>> org.apereo.cas.authentication.PolicyBasedAuthenticationManager.authenticate(PolicyBasedAuthenticationManager.java:220) >>>>>>>>>>> ~[cas-server-core-authentication-5.2.2.jar:5.2.2] >>>>>>>>>>> at >>>>>>>>>>> org.apereo.cas.authentication.PolicyBasedAuthenticationManager$$FastClassBySpringCGLIB$$90e801d3.invoke(<generated>) >>>>>>>>>>> ~[cas-server-core-authentication-5.2.2.jar:5.2.2] >>>>>>>>>>> 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.MethodInvocationProceedingJoinPoint.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.8.0.GA.jar:1.8.0.GA] >>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>> ~[?:1.8.0_162] >>>>>>>>>>> at >>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>> ~[?:1.8.0_162] >>>>>>>>>>> at >>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>> ~[?:1.8.0_162] >>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>> ~[?:1.8.0_162] >>>>>>>>>>> ... >>>>>>>>>>> >>>>>>>>>>> 2018-02-15 09:31:13,982 INFO >>>>>>>>>>> [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - >>>>>>>>>>> <Audit >>>>>>>>>>> trail record BEGIN >>>>>>>>>>> ============================================================= >>>>>>>>>>> WHO: *253227* >>>>>>>>>>> WHAT: [event=error,timestamp=Thu Feb 15 09:31:13 CET >>>>>>>>>>> 2018,source=OneTimeTokenAuthenticationWebflowEventResolver] >>>>>>>>>>> ACTION: AUTHENTICATION_EVENT_TRIGGERED >>>>>>>>>>> APPLICATION: CAS >>>>>>>>>>> WHEN: Thu Feb 15 09:31:13 CET 2018 >>>>>>>>>>> CLIENT IP ADDRESS: 10.100.100.20 >>>>>>>>>>> SERVER IP ADDRESS: 10.40.0.2 >>>>>>>>>>> ============================================================= >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Can anybody tell me what I'm missing? >>>>>>>>>>> >>>>>>>>>> -- >>>>>>> - 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/57f5e936-6e6e-422c-9fb1-5140e5408eda%40apereo.org >>>>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/57f5e936-6e6e-422c-9fb1-5140e5408eda%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/141bb8a9-d702-4511-95b6-ce8004cb3ff4%40apereo.org >>>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/141bb8a9-d702-4511-95b6-ce8004cb3ff4%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/16c20cee-e056-4d0b-afee-e237fe673185%40apereo.org >>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/16c20cee-e056-4d0b-afee-e237fe673185%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/cc0b95f7-a7ad-4c8e-8b03-82b9bd30ef0e%40apereo.org > <https://groups.google.com/a/apereo.org/d/msgid/cas-user/cc0b95f7-a7ad-4c8e-8b03-82b9bd30ef0e%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/CAM2C0GzCy4xxGuXzuYSx293STX93%3DZXd0sLuamwTfayE_ydrsg%40mail.gmail.com.
