Thank you for your answer.
Yes, it happens because of some error in webservice.
Now, CAS can access service registry with this format from rest api
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps)://.*",
"name" : "HTTPS and IMAPS",
"id" : 10000001
}
However, I need to add attribute release policy to service registry. So the
format will be like this.
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(http|https)://localhost.*",
"name": "Localhost",
"id": "25062021",
"evaluationOrder": 0,
"description": "localhost app",
"logoutType": "BACK_CHANNEL",
"responseType": "REDIRECT",
"attributeReleasePolicy": {
"@class": "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy",
"allowedAttributes": ["java.util.ArrayList",[
"cn","sn","mail","employeeNumber"]]
}
}
But, I got error like this
java.lang.IllegalArgumentException: Cannot deserialize value of type
`java.lang.String` from Array value (token `JsonToken.START_ARRAY`)
at [Source: UNKNOWN; line: -1, column: -1] (through reference chain:
org.apereo.cas.services.RegexRegisteredService["attributeReleasePolicy"]->org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy["allowedAttributes"]->java.util.ArrayList[1])
at
com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4312)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4243)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
org.apereo.cas.services.DefaultRegisteredServiceEntityMapper.toRegisteredService(DefaultRegisteredServiceEntityMapper.java:25)
~[cas-server-support-rest-service-registry-6.3.0.jar!/:6.3.0]
at jdk.internal.reflect.GeneratedMethodAccessor126.invoke(Unknown
Source) ~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)
~[spring-cloud-context-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at com.sun.proxy.$Proxy231.toRegisteredService(Unknown Source)
~[?:?]
at
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
~[?:?]
at
java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
~[?:?]
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
~[?:?]
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
~[?:?]
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
~[?:?]
at
org.apereo.cas.services.RestfulServiceRegistry.load(RestfulServiceRegistry.java:88)
~[cas-server-support-rest-service-registry-6.3.0.jar!/:6.3.0]
at jdk.internal.reflect.GeneratedMethodAccessor132.invoke(Unknown
Source) ~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)
~[spring-cloud-context-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at com.sun.proxy.$Proxy229.load(Unknown Source) ~[?:?]
at
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
~[?:?]
at
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
~[?:?]
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
~[?:?]
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
~[?:?]
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
~[?:?]
at
org.apereo.cas.services.DefaultChainingServiceRegistry.load(DefaultChainingServiceRegistry.java:63)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at jdk.internal.reflect.GeneratedMethodAccessor132.invoke(Unknown
Source) ~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)
~[spring-cloud-context-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at com.sun.proxy.$Proxy232.load(Unknown Source) ~[?:?]
at
org.apereo.cas.services.AbstractServicesManager.load(AbstractServicesManager.java:226)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at
org.apereo.cas.services.ChainingServicesManager.lambda$load$12(ChainingServicesManager.java:143)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at
java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271)
~[?:?]
at
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
~[?:?]
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
~[?:?]
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
~[?:?]
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
~[?:?]
at
org.apereo.cas.services.ChainingServicesManager.load(ChainingServicesManager.java:144)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at
org.apereo.cas.services.ChainingServicesManager$$FastClassBySpringCGLIB$$d1902915.invoke(<generated>)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.apereo.cas.services.ChainingServicesManager$$EnhancerBySpringCGLIB$$204b8855.load(<generated>)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[?:?]
at
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
~[spring-core-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)
~[spring-cloud-context-2.2.6.RELEASE.jar!/:2.2.6.RELEASE]
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
~[spring-aop-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at com.sun.proxy.$Proxy135.load(Unknown Source) ~[?:?]
at
org.apereo.cas.services.ServicesManagerScheduledLoader.run(ServicesManagerScheduledLoader.java:32)
~[cas-server-core-services-registry-6.3.0.jar!/:6.3.0]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[?:?]
at
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
~[spring-context-5.2.12.RELEASE.jar!/:5.2.12.RELEASE]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
~[?:?]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
~[?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException:
Cannot deserialize value of type `java.lang.String` from Array value (token
`JsonToken.START_ARRAY`)
at [Source: UNKNOWN; line: -1, column: -1] (through reference chain:
org.apereo.cas.services.RegexRegisteredService["attributeReleasePolicy"]->org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy["allowedAttributes"]->java.util.ArrayList[1])
at
com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1603)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1377)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1282)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseString(StdDeserializer.java:1288)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:216)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:182)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:25)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:324)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:225)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:197)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:135)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:105)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:263)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:138)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:324)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:225)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:197)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:135)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:105)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:263)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:74)
~[jackson-databind-2.12.0.jar!/:2.12.0]
at
com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4307)
~[jackson-databind-2.12.0.jar!/:2.12.0]
... 84 more
Is the format not right? I got the format from CAS documentation.
On Friday, May 21, 2021 at 7:07:36 AM UTC+7 Pablo Vidaurri wrote:
> Since you have it setup as a webservice, have you tried calling postman to
> see what you actually get back?
>
> On Thursday, May 20, 2021 at 7:06:35 PM UTC-5 Pablo Vidaurri wrote:
>
>> are you returning a 200?
>>
>> Is that JSON what you actually received or is it what you think you are
>> sending?
>>
>> On Wednesday, May 19, 2021 at 4:43:48 AM UTC-5 [email protected] wrote:
>>
>>> Hello,
>>>
>>> I'm configuring CAS v6.3 to use restful service registry based on this
>>> documentation (
>>> https://apereo.github.io/cas/6.3.x/services/REST-Service-Management.html#restful-service-registry
>>> ).
>>>
>>> When I run CAS server, I got error like this.
>>>
>>> Caused by:
>>> org.springframework.http.converter.HttpMessageNotReadableException: JSON
>>> parse error: Cannot deserialize value of type `[Ljava.io.Serializable;`
>>> from Object value (token `JsonToken.START_OBJECT`); nested exception is
>>> com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot
>>> deserialize value of type `[Ljava.io.Serializable;` from Object value
>>> (token `JsonToken.START_OBJECT`) at [Source: (PushbackInputStream); line:
>>> 1, column: 1] at
>>> org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:285)
>>>
>>> at
>>> org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:243)
>>>
>>> at
>>> org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:105)
>>>
>>> ... 193 more Caused by:
>>> com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot
>>> deserialize value of type `[Ljava.io.Serializable;` from Object value
>>> (token `JsonToken.START_OBJECT`) at [Source: (PushbackInputStream); line:
>>> 1, column: 1] at
>>> com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
>>>
>>> at
>>> com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1603)
>>>
>>> at
>>> com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1377)
>>>
>>> at
>>> com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1324)
>>>
>>> at
>>> com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.handleNonArray(ObjectArrayDeserializer.java:343)
>>>
>>> at
>>> com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:194)
>>>
>>> at
>>> com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:24)
>>>
>>> at
>>> com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
>>>
>>> at
>>> com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4591)
>>>
>>> at
>>> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3599)
>>>
>>> at
>>> org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:274)
>>>
>>> ... 195 more
>>>
>>> Here is the rest api response that I provided.
>>>
>>> {"@class" : "org.apereo.cas.services.RegexRegisteredService",
>>> "serviceId" : "^(https|imaps)://.*",
>>> "name" : "HTTPS and IMAPS",
>>> "id" : 10000001}
>>>
>>> It's in JSON format. Is there any specific format that I should provide?
>>> Thank you
>>>
>>
--
- 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/6126ce21-d060-4b22-be46-848a81fc3f7an%40apereo.org.