Can't add TR while providing metadata via URI if it's long enough
aliaksander-samuseu opened this issue · comments
aliaksander-samuseu commented
Description
In Gluu CE with MySQL used for persistence, a new TR with metadata provided as uri is rejected if oxTrust considers the uri "too long"
Steps To Reproduce
- Move to "SAML" > "Trust Relationships" and click "Add Relationship" button
- Select "Single SP" for type and URI for metadata location
- Use next uri:
https://idp-apacreg-qa.amwayglobal.com/app/exkpcnsdl1k42B8YW0h7/sso/saml/metadata
- Click "Add" button
Expected behavior
A new TR is created and validation is started
Actual behavior
An "Failed to add new relationship" pop-up error appears on the page, and next trace is logged to oxtrust.log
:
2023-08-31 17:52:01,291 ERROR [qtp982757413-14] [org.gluu.oxtrust.action.UpdateTrustRelationshipAction] (UpdateTrustRelationshipAction.java:454) - Failed to add new trust relationship e8e0aeb4-9259-49e2-a8c9-d9c7e8cce6d8
org.gluu.persist.exception.EntryPersistenceException: Failed to persist entry: 'inum=e8e0aeb4-9259-49e2-a8c9-d9c7e8cce6d8,ou=trustRelationships,o=gluu'
at org.gluu.persist.sql.impl.SqlEntryManager.persist(SqlEntryManager.java:214) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.impl.BaseEntryManager.persist(BaseEntryManager.java:132) ~[gluu-orm-core-4.5.2.Final.jar:?]
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.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:106) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.gluu.persist.PersistenceEntryManager$EntityManager$1037559105$Proxy$_$$_WeldClientProxy.persist(Unknown Source) ~[gluu-orm-core-4.5.2.Final.jar:?]
at org.gluu.oxtrust.service.TrustService.addTrustRelationship(TrustService.java:82) ~[oxtrust-service-4.5.2.Final.jar:?]
at org.gluu.oxtrust.service.TrustService$Proxy$_$$_WeldClientProxy.addTrustRelationship(Unknown Source) ~[oxtrust-service-4.5.2.Final.jar:?]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction.saveTR(UpdateTrustRelationshipAction.java:651) ~[classes/:?]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction.saveImpl(UpdateTrustRelationshipAction.java:452) ~[classes/:?]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction$Proxy$_$$_WeldSubclass.saveImpl(Unknown Source) ~[classes/:?]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction.save(UpdateTrustRelationshipAction.java:310) ~[classes/:?]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction$Proxy$_$$_WeldSubclass.save$$super(Unknown Source) ~[classes/:?]
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.jboss.weld.interceptor.proxy.TerminalAroundInvokeInvocationContext.proceedInternal(TerminalAroundInvokeInvocationContext.java:51) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:78) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.gluu.service.security.SecurityInterceptor.invoke(SecurityInterceptor.java:55) ~[security-extension-cdi-4.5.2.Final.jar:?]
at jdk.internal.reflect.GeneratedMethodAccessor263.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:84) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:72) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:56) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68) ~[weld-core-impl-3.1.9.Final.jar:3.1.9.Final]
at org.gluu.oxtrust.action.UpdateTrustRelationshipAction$Proxy$_$$_WeldSubclass.save(Unknown Source) ~[classes/:?]
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.apache.el.parser.AstValue.invoke(AstValue.java:246) ~[org.mortbay.jasper.apache-el-9.0.52.jar:9.0.52]
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:266) ~[org.mortbay.jasper.apache-el-9.0.52.jar:9.0.52]
at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) ~[weld-web-3.1.9.Final.jar:3.1.9.Final]
at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) ~[weld-web-3.1.9.Final.jar:3.1.9.Final]
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:65) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:66) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.application.ActionListenerImpl.getNavigationOutcome(ActionListenerImpl.java:82) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:71) ~[jakarta.faces-2.3.18.jar:2.3.18]
at javax.faces.component.UICommand.broadcast(UICommand.java:222) ~[jakarta.faces-2.3.18.jar:2.3.18]
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:847) ~[jakarta.faces-2.3.18.jar:2.3.18]
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1396) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:58) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76) ~[jakarta.faces-2.3.18.jar:2.3.18]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177) ~[jakarta.faces-2.3.18.jar:2.3.18]
at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:707) ~[jakarta.faces-2.3.18.jar:2.3.18]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451) ~[jakarta.faces-2.3.18.jar:2.3.18]
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410) ~[jetty-servlet-10.0.9.jar:10.0.9]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) ~[jetty-servlet-10.0.9.jar:10.0.9]
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1630) ~[jetty-servlet-10.0.9.jar:10.0.9]
at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170) ~[websocket-servlet-10.0.9.jar:10.0.9]
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) ~[?:?]
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1600) ~[?:?]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) ~[?:?]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) ~[?:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) ~[?:?]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[?:?]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1378) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) ~[?:?]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463) ~[?:?]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) ~[?:?]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1300) ~[?:?]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) ~[?:?]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:192) ~[?:?]
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51) ~[?:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) ~[?:?]
at org.eclipse.jetty.server.Server.handle(Server.java:562) ~[?:?]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505) ~[?:?]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762) ~[?:?]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497) ~[?:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) ~[?:?]
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038) ~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: org.gluu.persist.exception.operation.PersistenceException: Failed to add entry
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntryImpl(SqlOperationServiceImpl.java:212) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntry(SqlOperationServiceImpl.java:176) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.impl.SqlEntryManager.persist(SqlEntryManager.java:209) ~[gluu-orm-sql-4.5.2.Final.jar:?]
... 91 more
Caused by: com.querydsl.core.QueryException: Caught MysqlDataTruncation for insert into gluudb.gluuSAMLconfig (description, displayName, gluuEntityType, gluuProfileConfiguration, gluuSpecificRelyingPartyConfig, inum, gluuSAMLmaxRefreshDelay, o, gluuReleasedAttribute, oxAuthPostLogoutRedirectURI, gluuSAMLspMetaDataFN, gluuSAMLspMetaDataSourceType, gluuSAMLspMetaDataURL, gluuStatus, objectClass, dn, doc_id)
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50) ~[querydsl-sql-5.0.0.jar:?]
at com.querydsl.sql.Configuration.translate(Configuration.java:507) ~[querydsl-sql-5.0.0.jar:?]
at com.querydsl.sql.dml.AbstractSQLInsertClause.execute(AbstractSQLInsertClause.java:429) ~[querydsl-sql-5.0.0.jar:?]
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntryImpl(SqlOperationServiceImpl.java:208) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntry(SqlOperationServiceImpl.java:176) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.impl.SqlEntryManager.persist(SqlEntryManager.java:209) ~[gluu-orm-sql-4.5.2.Final.jar:?]
... 91 more
Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'gluuSAMLspMetaDataURL' at row 1
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994) ~[mysql-connector-j-8.0.32.jar:8.0.32]
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at com.querydsl.sql.dml.AbstractSQLInsertClause.execute(AbstractSQLInsertClause.java:407) ~[querydsl-sql-5.0.0.jar:?]
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntryImpl(SqlOperationServiceImpl.java:208) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.operation.impl.SqlOperationServiceImpl.addEntry(SqlOperationServiceImpl.java:176) ~[gluu-orm-sql-4.5.2.Final.jar:?]
at org.gluu.persist.sql.impl.SqlEntryManager.persist(SqlEntryManager.java:209) ~[gluu-orm-sql-4.5.2.Final.jar:?]
... 91 more
shekhar16 commented
@devrimyatar please increase the sql length for the field gluuSAMLspMetaDataURL