Hi.

I am using CAS 5.1.0 and it is working fine including multifactor 
authentication. But, I get the following warning:

org.apereo.cas.config.CasCoreTicketsConfiguration] - <Runtime memory is 
used as the persistence storage for retrieving and managing tickets. Tickets 
that are issued during runtime will be LOST upon container restarts. This 
MAY impact SSO functionality.>

To get rid of the following warning and persist tickets I added the 
cas-server-support-mongo-ticket-registry dependency and configured the 
following properties as described here.

cas.ticket.registry.mongo.host=${MONGO_HOST}
cas.ticket.registry.mongo.userId=${MONGO_USERNAME}
cas.ticket.registry.mongo.password=${MONGO_PASSWORD}
cas.ticket.registry.mongo.databaseName=cas-database
cas.ticket.registry.mongo.collectionName=cas-ticket-registry
cas.ticket.registry.mongo.dropCollection=false

CAS starts as expected and creates the collection (and the corresponding 
index) in the MongoDB. Unfortunately, logins are not possible anymore.

The trace shows:

WHO: xxx
WHAT: Supplied credentials: [xxx]
ACTION: AUTHENTICATION_SUCCESS
APPLICATION: CAS

WHO: xxx
WHAT: TGT-**********************************************...
ACTION: TICKET_GRANTING_TICKET_DESTROYED
APPLICATION: CAS

WHO: xxx
WHAT: TGT-**********************************************...
ACTION: TICKET_GRANTING_TICKET_CREATED
APPLICATION: CAS

... followed by two times ...

ERROR [org.apereo.cas.util.serialization.
AbstractJacksonBackedStringSerializer] -
 <Cannot read/parse JSON [{"@class":
"org.apereo.cas.ticket.TicketGrantingTicketImpl","@id":1,"id":
"TGT-**************...]
 to deserialize into type [interface 
org.apereo.cas.ticket.TicketGrantingTicket].
 This may be caused in the absence of a configuration/support module that 
knows how to interpret the JSON fragment,
 specially if the fragment describes a CAS registered service definition. 
Internal parsing error is
 [Can not construct instance of 
java.util.Collections$UnmodifiableCollection: no default no-arguments 
constructor found
 at [Source: {"@class":"org.apereo.cas.ticket.TicketGrantingTicketImpl","@id
":1,"id":"TGT-**************...",
  "authentication":{"@class":"org.apereo.cas.authentication.
DefaultAuthentication","authenticationDate":1498037529.634,
  "credentials":["java.util.ArrayList",[{"@class":"org.apereo.cas.
authentication.BasicCredentialMetaData","id":"xxx",
  "credentialClass":"org.apereo.cas.authentication.
UsernamePasswordCredential"}]],
  "principal":{"@class":"org.apereo.cas.authentication.principal.
SimplePrincipal","id":"xxx",
  "attributes":{"@class":"java.util.TreeMap","employeeType":"yyy","
LdapAuthenticationHandler.xxx":"cn=xxx,ou=users,dc=zzz,dc=eu",
  "objectclass":["java.util.Collections$UnmodifiableCollection",["top","
inetOrgPerson"]],"sn":"xxx"}},
  "attributes":{"@class":"java.util.HashMap","authenticationMethod":"
LdapAuthenticationHandler",
  "successfulAuthenticationHandlers":["java.util.HashSet",["
LdapAuthenticationHandler"]]},
  "successes":{"@class":"java.util.HashMap","LdapAuthenticationHandler":{"
@class":"org.apereo.cas.authentication.DefaultHandlerResult",
  "handlerName":"LdapAuthenticationHandler","credentialMetaData":{"@class":"
org.apereo.cas.authentication.BasicCredentialMetaData",
  "id":"xxx","credentialClass":"org.apereo.cas.authentication.
UsernamePasswordCredential"},
  "principal":{"@class":"org.apereo.cas.authentication.principal.
SimplePrincipal","id":"xxx",
  "attributes":{"@class":"java.util.TreeMap","employeeType":"yyy","
LdapAuthenticationHandler.xxx":"cn=xxx,ou=users,dc=zzz,dc=eu",
  "objectclass":["java.util.Collections$UnmodifiableCollection",["top","
inetOrgPerson"]],"sn":"xxx"}}}}},
  "expirationPolicy":{"@class":"org.apereo.cas.ticket.support.
TicketGrantingTicketExpirationPolicy","timeToLive":28800,"timeToIdle":7200},
  "lastTimeUsed":1498037529.657,"creationTime":1498037529.657,"countOfUses
":0,"expired":false,"prefix":"TGT","expiredInternal":false};
  line: 1, column: 759] (through reference chain: 
org.apereo.cas.ticket.TicketGrantingTicketImpl["authentication"]->
  org.apereo.cas.authentication.DefaultAuthentication["principal
"]->org.apereo.cas.authentication.principal.SimplePrincipal["attributes"]
  ->java.util.TreeMap["objectclass"])]>

ERROR [org.apereo.cas.ticket.registry.MongoDbTicketRegistry] - <Failed 
fetching [TGT-**********************************************...]: 
[INVALID_TICKET]>

... and ...

WHO: xxx
WHAT: TGT-**********************************************...
ACTION: TICKET_GRANTING_TICKET_DESTROYED
APPLICATION: CAS

Login fails.

The MongoDB has a new document:

{
    "_id" : ObjectId("594a3d5cc5f22500087beaaa"),
    "_class" : "org.apereo.cas.ticket.registry.TicketHolder",
    "json" : "\n{\n  \"@class\": 
\"org.apereo.cas.ticket.TicketGrantingTicketImpl\",\n  \"@id\": 1,\n 
 \"id\": \"TGT-...\",\n  \"authentication\":\n  {\n    \"@class\": 
\"org.apereo.cas.authentication.DefaultAuthentication\",\n   
 \"authenticationDate\": 1498037595.988,\n    \"credentials\":\n    [\n     
 \"java.util.ArrayList\",\n      [\n        {\n          \"@class\": 
\"org.apereo.cas.authentication.BasicCredentialMetaData\",\n         
 \"id\": \"xxx\",\n          \"credentialClass\": 
\"org.apereo.cas.authentication.UsernamePasswordCredential\"\n        }\n   
   ]\n    ],\n    \"principal\":\n    {\n      \"@class\": 
\"org.apereo.cas.authentication.principal.SimplePrincipal\",\n      \"id\": 
\"xxx\",\n      \"attributes\":\n      {\n        \"@class\": 
\"java.util.TreeMap\",\n        \"employeeType\": \"yyy\",\n       
 \"LdapAuthenticationHandler.xxx\": \"cn=xxx,ou=users,dc=zzz,dc=eu\",\n     
   \"objectclass\":\n        [\n         
 \"java.util.Collections$UnmodifiableCollection\",\n          [\n           
 \"top\",\n            \"inetOrgPerson\"\n          ]\n        ],\n       
 \"sn\": \"xxx\"\n      }\n    },\n    \"attributes\":\n    {\n     
 \"@class\": \"java.util.HashMap\",\n      \"authenticationMethod\": 
\"LdapAuthenticationHandler\",\n     
 \"successfulAuthenticationHandlers\":\n      [\n       
 \"java.util.HashSet\",\n        [\n         
 \"LdapAuthenticationHandler\"\n        ]\n      ]\n    },\n   
 \"successes\":\n    {\n      \"@class\": \"java.util.HashMap\",\n     
 \"LdapAuthenticationHandler\":\n      {\n        \"@class\": 
\"org.apereo.cas.authentication.DefaultHandlerResult\",\n       
 \"handlerName\": \"LdapAuthenticationHandler\",\n       
 \"credentialMetaData\":\n        {\n          \"@class\": 
\"org.apereo.cas.authentication.BasicCredentialMetaData\",\n         
 \"id\": \"xxx\",\n          \"credentialClass\": 
\"org.apereo.cas.authentication.UsernamePasswordCredential\"\n        },\n 
       \"principal\":\n        {\n          \"@class\": 
\"org.apereo.cas.authentication.principal.SimplePrincipal\",\n         
 \"id\": \"xxx\",\n          \"attributes\":\n          {\n           
 \"@class\": \"java.util.TreeMap\",\n            \"employeeType\": 
\"yyy\",\n            \"LdapAuthenticationHandler.xxx\": 
\"cn=xxx,ou=users,dc=zzz,dc=eu\",\n            \"objectclass\":\n           
 [\n              \"java.util.Collections$UnmodifiableCollection\",\n       
       [\n                \"top\",\n                \"inetOrgPerson\"\n     
         ]\n            ],\n            \"sn\": \"xxx\"\n          }\n     
   }\n      }\n    }\n  },\n  \"expirationPolicy\":\n  {\n    \"@class\": 
\"org.apereo.cas.ticket.support.TicketGrantingTicketExpirationPolicy\",\n   
 \"timeToLive\": 28800,\n    \"timeToIdle\": 7200\n  },\n 
 \"lastTimeUsed\": 1498037596.029,\n  \"creationTime\": 1498037596.029,\n 
 \"countOfUses\": 0,\n  \"expired\": false,\n  \"prefix\": \"TGT\",\n 
 \"expiredInternal\": false\n}",
    "ticketId" : "TGT-...",
    "type" : "org.apereo.cas.ticket.TicketGrantingTicketImpl",
    "expireAt" : NumberLong(28800)
}

What is missing in my configuration?

-- 
- CAS gitter chatroom: https://gitter.im/apereo/cas
- CAS mailing list guidelines: https://apereo.github.io/cas/Mailing-Lists.html
- CAS documentation website: https://apereo.github.io/cas
- CAS project website: https://github.com/apereo/cas
--- 
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/fd67483c-4a69-4935-8c06-f689bec4cbf2%40apereo.org.

Reply via email to