cas-management 5.0.x jpa service registry ORA-00972: identifier is too long

141 views
Skip to first unread message

Rob Blais

unread,
Apr 26, 2017, 9:12:20 AM4/26/17
to CAS Community
I've got CAS 5.0.5 up and running with an Oracle 12c DB for the service and ticket registries.  CAS was able to init the service registry from the default json files and I can see that it reads them back.

INFO [org.apereo.cas.services.DefaultServicesManagerImpl] - <Loaded 2 services from JpaServiceRegistryDaoImpl.>

When I try to launch the cas-management webapp, it throws an "ORA-00972: identifier is too long" too long error.

Hibernate: select abstractre0_.id as id2_0_, abstractre0_.access_strategy as access_strategy3_0_, abstractre0_.attribute_release as attribute_release4_0_, abstractre0_.description as description5_0_, abstractre0_.evaluation_order as evaluation_order6_0_, abstractre0_.logo as logo7_0_, abstractre0_.logout_type as logout_type8_0_, abstractre0_.logout_url as logout_url9_0_, abstractre0_.mfa_policy as mfa_policy10_0_, abstractre0_.name as name11_0_, abstractre0_.proxy_policy as proxy_policy12_0_, abstractre0_.public_key as public_key13_0_, abstractre0_.required_handlers as required_handlers14_0_, abstractre0_.serviceId as serviceId15_0_, abstractre0_.theme as theme16_0_, abstractre0_.username_attr as username_attr17_0_, abstractre0_.bypassApprovalPrompt as bypassApprovalPro18_0_, abstractre0_.clientId as clientId19_0_, abstractre0_.clientSecret as clientSecret20_0_, abstractre0_.generateRefreshToken as generateRefreshTo21_0_, abstractre0_.jsonFormat as jsonFormat22_0_, abstractre0_.jwks as jwks23_0_, abstractre0_.signIdToken as signIdToken24_0_, abstractre0_.encryptAssertions as encryptAssertions25_0_, abstractre0_.metadataCriteriaDirection as metadataCriteriaD26_0_, abstractre0_.metadataCriteriaPattern as metadataCriteriaP27_0_, abstractre0_.metadataCriteriaRemoveEmptyEntitiesDescriptors as metadataCriteriaR28_0_, abstractre0_.metadataCriteriaRemoveRolelessEntityDescriptors as metadataCriteriaR29_0_, abstractre0_.metadataCriteriaRoles as metadataCriteriaR30_0_, abstractre0_.metadataLocation as metadataLocation31_0_, abstractre0_.metadataMaxValidity as metadataMaxValidi32_0_, abstractre0_.metadataSignatureLocation as metadataSignature33_0_, abstractre0_.requiredAuthenticationContextClass as requiredAuthentic34_0_, abstractre0_.requiredNameIdFormat as requiredNameIdFor35_0_, abstractre0_.signAssertions as signAssertions36_0_, abstractre0_.signResponses as signResponses37_0_, abstractre0_.expression_type as expression_type1_0_ from RegexRegisteredService abstractre0_
2017-04-26 07:50:10,955 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] - <ORA-00972: identifier is too long

Logs and configs are attached.  Any help would be greatly appreciated.

/rob


catalina.out
management.properties
pom.xml
cas-management.log
catalina.out

Olivier Lamarche

unread,
Apr 26, 2017, 11:14:23 AM4/26/17
to CAS Community

Hi Rob,

I got the same error last week.

I dont know if you use SAML authentification, but I ended up by overriding SamlRegisteredService.java



After, rename your @Column by using the name attribute : 

 @Column(updatable = true, insertable = true)
    private long metadataMaxValidity;

    @Column(updatable = true, insertable = true, name= "racc")
    private String requiredAuthenticationContextClass;

    @Column(updatable = true, insertable = true)
    private String metadataCriteriaDirection;

    @Column(updatable = true, insertable = true, name= "mcp")
    private String metadataCriteriaPattern;
    
    @Column(updatable = true, insertable = true)
    private String requiredNameIdFormat;

    @Column(updatable = true, insertable = true, name= "msl")
    private String metadataSignatureLocation;

    @Column(updatable = true, insertable = true)
    private boolean signAssertions;

    @Column(updatable = true, insertable = true)
    private boolean signResponses = true;

    @Column(updatable = true, insertable = true)
    private boolean encryptAssertions;

    @Column(updatable = true, insertable = true)
    private String metadataCriteriaRoles = "SPSSODescriptor";

    @Column(updatable = true, insertable = true, name= "mcreed")
    private boolean metadataCriteriaRemoveEmptyEntitiesDescriptors = true;

    @Column(updatable = true, insertable = true, name= "mcrred")
    private boolean metadataCriteriaRemoveRolelessEntityDescriptors = true;

Don't forget to this override in both cas webapp and management console webapp 

Rob

unread,
Apr 26, 2017, 12:39:39 PM4/26/17
to cas-...@apereo.org
Hi Olivier,

Thanks for the reply.  I'm building from the maven overlays, so I don't have the class files to modify. I can download the source and give it a shot, but I was hoping there would be a more elegant solution.

We can live without SAML for now, but we'll need it in the future.

Thanks,
/rob


--
- 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 cas-user+unsubscribe@apereo.org.
To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/5908f47a-71fd-43a1-8732-f4e70ef73521%40apereo.org.

Reply all
Reply to author
Forward
0 new messages