I am trying to delete some attributes that I've created in oxTrust.
I deleted the first one successfully, but I have several more to delete and the GUI is throwing the error System Error. Please try again or contact a Gluu administrator for help
.
Wrapper.log
shows the following errors:
INFO | jvm 1 | 2016/07/25 13:36:46 | Jul 25, 2016 1:36:46 PM com.sun.faces.renderkit.html_basic.MessageRenderer encodeEnd
INFO | jvm 1 | 2016/07/25 13:36:46 | WARNING: 'for' attribute cannot be null
INFO | jvm 1 | 2016/07/25 13:36:49 | 2016-07-25 13:36:49,136 INFO [org.gluu.oxtrust.ldap.service.AttributeService] Attribute removal started
INFO | jvm 1 | 2016/07/25 13:36:49 | Jul 25, 2016 1:36:49 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
INFO | jvm 1 | 2016/07/25 13:36:49 | WARNING: #{cc.attrs.deleteMethod}: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | javax.faces.FacesException: #{cc.attrs.deleteMethod}: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UICommand.broadcast(UICommand.java:315)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:792)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1257)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.RewriteFilter.doFilter(RewriteFilter.java:63)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.lang.Thread.run(Thread.java:745)
INFO | jvm 1 | 2016/07/25 13:36:49 | Caused by: javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:94)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
INFO | jvm 1 | 2016/07/25 13:36:49 | ... 42 more
INFO | jvm 1 | 2016/07/25 13:36:49 | Caused by: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.el.ContextualCompositeMethodExpression.invoke(ContextualCompositeMethodExpression.java:190)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:450)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
INFO | jvm 1 | 2016/07/25 13:36:49 | ... 43 more
INFO | jvm 1 | 2016/07/25 13:36:49 |
INFO | jvm 1 | 2016/07/25 13:36:49 | 2016-07-25 13:36:49,158 ERROR [org.jboss.seam.exception.Exceptions] handled and logged exception
INFO | jvm 1 | 2016/07/25 13:36:49 | javax.servlet.ServletException: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.RewriteFilter.doFilter(RewriteFilter.java:63)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
INFO | jvm 1 | 2016/07/25 13:36:49 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
INFO | jvm 1 | 2016/07/25 13:36:49 | at java.lang.Thread.run(Thread.java:745)
INFO | jvm 1 | 2016/07/25 13:36:49 | Caused by: javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:94)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UICommand.broadcast(UICommand.java:315)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:792)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1257)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
INFO | jvm 1 | 2016/07/25 13:36:49 | ... 35 more
INFO | jvm 1 | 2016/07/25 13:36:49 | Caused by: javax.el.PropertyNotFoundException: //localhost/identity/attribute/updateAttribute.xhtml @41,185 deleteMethod="#{updateAttributeAction.delete}": Property 'delete' not found on type org.gluu.oxtrust.action.UpdateAttributeAction_$_javassist_seam_59
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.el.ContextualCompositeMethodExpression.invoke(ContextualCompositeMethodExpression.java:190)
INFO | jvm 1 | 2016/07/25 13:36:49 | at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:450)
INFO | jvm 1 | 2016/07/25 13:36:49 | at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
INFO | jvm 1 | 2016/07/25 13:36:49 | ... 43 more
I have removed mappings to this attribute in all cache refresh and stopped releasing them in any trust relationships, so they should be unused.
Ok, thanks for the bug report. We'll look to add a bug fix for this. But in the meantime, if you want a workaround, I would do the following:
Update the OpeNDJ Schema (grep the /opt/opendj/config/schema
folder for the attribute, and you'll find the right ldif. Make sure you remove the attribute and the reference to the attribute in the objectclass.
Find the entry under ou=attributes,o=(org-inum),o=gluu
and remove it. You can search with the filter (gluuAttributeName=custmAttr)
That should do it.
When I grep for the custom attributes I want to remove I actually see them in two files: 100-user.ldif
and 99-user.ldif
:
GLUU.root@gluu:/opt/opendj/config/schema# grep -R "lastname" .
./100-user.ldif:attributeTypes: ( 1468975251076 NAME 'lastname' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE userApplications X-SCHEMA-FILE '100-user.ldif' X-ORIGIN 'gluu' )
./99-user.ldif:objectClasses: ( ox-C9D93C5FE0ECDC2D000163EF792A-oid NAME 'ox-C9D93C5FE0ECDC2D000163EF792A' SUP top STRUCTURAL MUST objectClass MAY ( webexID $ updatetimestamp $ whenChanged $ firstname $ lastname ) X-ORIGIN 'gluu' )
I want to keep webexID but delete the rest but there seems to be some entry with all of them in 99-user.ldif
. Should I leave the 99-user.ldif
file alone?
Nevermind, I understand that the second file is the reference to the attribute in the objectclass. Thanks.
If that works, feel free to close the issue for us.
It worked great, thanks!
Additional information: I created a new attribute and was able to delete it if I haven't done anything with it like release in a trust relationship or do some Cache Refresh mapping. That might be helpful when trying to reproduce.
Thanks again.
Thanks, Thomas.
Were there any differences between that first attribute you deleted successfully, and the next one that you couldn't? Like, may be the first one was only used in CR's mapping and SAML TR, and the 2nd one was also used for OIDC flows.
The second one wasn't used for anything, I just created it and then deleted it to see if it would work.
Hi, Thomas.
Could you please try to remember all your actions prior to this issue was first experienced?
>I have removed mappings to this attribute in all cache refresh and stopped releasing them in any trust relationships, so they should be unused.
Had you done it prior to your attempted to remove these attributes (and when you first encountered the issue), or was it after that, when you couldn't delete them due to error and started to search for what caused this?
I think I attempted to delete them while they were still released in a trust relationship and possibly also in a cache refresh mapping rule, but there was no error or check telling me they were in use or not to use them.
After I removed them from CR and TR they still wouldn't delete.
Thanks for reporting this, Thomas. Issue is created an we are working on this.
If you need it to be resolved asap, our current opinion about the cause of that is as next: when first attribute is deleted, it's also purged from OpenDJ's schema, but user entries that had some values assigned to it keep those. When you try to delete next attribute, it also tries to update user entries (can't say atm for what reason though), and fails because according to schema such attribute doesn't exist anymore.
Long story short, after removing all values assigned to attributes you can't delete (plus the one you deleted) from all user entries inside Gluu with tool like ldapmodify
, you should be able to delete the rest of your attributes too.