Nothing is missing in your config. This is a bug in JSON serialization. You’re 
welcome to file an issue.



--Misagh



From: [email protected] [mailto:[email protected]] On Behalf Of Michael 
Kotowski
Sent: Wednesday, June 21, 2017 5:09 AM
To: CAS Community <[email protected]>
Subject: [cas-user] CAS 5.1.0: Cannot read/parse JSON [{}] to deserialize 
into type [] ... missing configuration/support module



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] 
<mailto:[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
 
<https://groups.google.com/a/apereo.org/d/msgid/cas-user/fd67483c-4a69-4935-8c06-f689bec4cbf2%40apereo.org?utm_medium=email&utm_source=footer>
 
.

-- 
- 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/00ed01d2eaa7%248a439a90%249ecacfb0%24%40unicon.net.

Reply via email to