I'm in the process of moving my 5.3.x implementation to 6.2.x, and I'm having a few issues with the cas-management application involving custom properties on a service. I'm looking for some help figuring out what's going on.
CAS itself does not show any issues with this service (and in fact I have a custom MFA trigger in my CAS overlay which checks the service for certain properties, and that's working as expected).
I'm working with the 6.2.2 release of cas-management, and I'm using the JPA service registry, but I've reproduced one of the problems using a second overlay with the JSON service registry. My overlay only contains the Jars necessary to implement the JPA (or JSON) service registry and an application-standalone.properties file to set some environment-independent settings. Here are my observations:
- When editing a service containing properties that was migrated from 5.3.x in the JPA registry, clicking the "properties" tab results in a blank tab, and the following Javascript error in the browser console:
ERROR Error: Uncaught (in promise): TypeError: t.get is not a function
TypeError: t.get is not a function
at 12-es2015.3bc66f72a40e282d9329.js:1
at Array.forEach (<anonymous>)
at ot.unpack (12-es2015.3bc66f72a40e282d9329.js:1)
at new ot (12-es2015.3bc66f72a40e282d9329.js:1)
at new t (12-es2015.3bc66f72a40e282d9329.js:1)
at Be.BJ+2.t.ɵfac [as factory] (12-es2015.3bc66f72a40e282d9329.js:1)
at Oi (main-es2015.e3659881fc91a8d92f14.js:1)
at main-es2015.e3659881fc91a8d92f14.js:1
at main-es2015.e3659881fc91a8d92f14.js:1
at hh.create (main-es2015.e3659881fc91a8d92f14.js:1)
at b (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at b (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at polyfills-es2015.febce94ab8bfb10e0207.js:1
at l.invokeTask (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at Object.onInvokeTask (main-es2015.e3659881fc91a8d92f14.js:1)
at l.invokeTask (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at i.runTask (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at m (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at invokeTask (polyfills-es2015.febce94ab8bfb10e0207.js:1)
at invoke (polyfills-es2015.febce94ab8bfb10e0207.js:1)There is nothing in the (server-side) log to indicate that the Java portion of the app had any issues deserializing the service from the database. - When attempting to add a new service, including properties, using both the JPA and JSON service registries in the 6.2.x management app, I get the following Javascript error in the browser console when hitting "save":
ERROR TypeError: e.value.split is not a function
at ot.mapForm (12-es2015.3bc66f72a40e282d9329.js:1)
at t.mapForm (main-es2015.e3659881fc91a8d92f14.js:30)
at t.save (12-es2015.3bc66f72a40e282d9329.js:1)
at 12-es2015.3bc66f72a40e282d9329.js:1
at $a (main-es2015.e3659881fc91a8d92f14.js:1)
at r (main-es2015.e3659881fc91a8d92f14.js:1)
at h.n [as _next] (main-es2015.e3659881fc91a8d92f14.js:1)
at h.__tryOrUnsub (main-es2015.e3659881fc91a8d92f14.js:1)
at h.next (main-es2015.e3659881fc91a8d92f14.js:1)
at l._next (main-es2015.e3659881fc91a8d92f14.js:1)There's also no evidence that the REST endpoint that does the saving on the server is hit.
Based on what I'm seeing, it looks like the Angular parts of cas-management are having trouble handling a service with properties. Does this sound like a plausible explanation? Has anyone successfully used the 6.2.2. management app with a service including properties yet?
Before investing a large amount of time digging into the Angular/typescript code (which is not my strong suit by a long shot), I'd like to know if I'm on the right track. Or even better -- if this is a known issue that someone is working on as we speak ...
Thanks,
Rich