[midPoint] departmentNumber attribute for AccountObjectClass in AD.

Deepak Natarajan dnataraj at trilobytesystems.com
Tue Sep 9 14:02:17 CEST 2014


Hi -

In our deployment of Midpoint provisioning to AD, the departmentNumber
attribute is required to be populated on the user account in the
resource. Since Midpoint 2.3, whenever I have imported my AD resource,
Midpoint has always complained that the AccountObjectClass is missing
the departmentNumber attribute, since I have an outbound mapping for
this attribute.

My workaround / quickfix was always to edit the resource schema and
quickly add in the departmentNumber, and then save the resource.

So I used to add :

                  <xsd:element minOccurs="0" name="departmentNumber"
type="xsd:string"/> to AccountObjectClass


But now, with 3.1-SNAPSHOT I am unable to do this - since the Resource
Wizard comes into play. I am able to view the raw XML schema at some
point in the wizard and edit it - but my changes are not being saved.

This is a show stopper for us, since our customer will not accept our
deployment (fair enough), and I'm unable to roll back to 3.0 since it
has fixes I need for correct group assignment. I hope someone can help
me - perhaps I can find and edit imported configuration directly on the
filesystem?

Here is the XML report from the issue :

*to hide the window, please click on the black background
XML report
<operationResult
xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'>
  
<operation>com.evolveum.midpoint.web.page.admin.resources.PageAdminResources.loadResource</operation>
   <status>partial_error</status>
   <token>1000000000000002514</token>
   <message>Schema error while processing schemaHandling section of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource): Definition of attribute
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}departmentNumber
not found in object class
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}AccountObjectClass
as defined in account type definition 'default' in definition of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource)</message>
   <partialResults>
     
<operation>com.evolveum.midpoint.model.api.ModelService.getObject</operation>
      <status>partial_error</status>
      <params>
         <entry key='oid'>
            <paramValue>29593a6a-019b-4bc9-8749-7bad43b9572b</paramValue>
         </entry>
         <entry key='class'>
            <unknownJavaObject>
               <class>java.lang.Class</class>
               <toString>class
com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType</toString>
            </unknownJavaObject>
         </entry>
         <entry key='options'>
            <unknownJavaObject>
               <class>java.util.ArrayList</class>
              
<toString>[ObjectOperationOptions(ObjectSelector(connector):
GetOperationOptions(resolve=true, resolveNames=null,noFetch=null,
raw=null, doNotDiscovery=null, retrieve=null,
allowNotFound=null))]</toString>
            </unknownJavaObject>
         </entry>
      </params>
      <token>1000000000000002513</token>
      <message>Schema error while processing schemaHandling section of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource): Definition of attribute
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}departmentNumber
not found in object class
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}AccountObjectClass
as defined in account type definition 'default' in definition of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource)</message>
      <partialResults>
        
<operation>com.evolveum.midpoint.provisioning.api.ProvisioningService.getObject</operation>
         <status>partial_error</status>
         <params>
            <entry key='oid'>
               <paramValue>29593a6a-019b-4bc9-8749-7bad43b9572b</paramValue>
            </entry>
            <entry key='type'>
               <unknownJavaObject>
                  <class>java.lang.Class</class>
                  <toString>class
com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType</toString>
               </unknownJavaObject>
            </entry>
            <entry key='options'>
               <unknownJavaObject>
                  <class>java.util.ArrayList</class>
                 
<toString>[ObjectOperationOptions(ObjectSelector(connector):
GetOperationOptions(resolve=true, resolveNames=null,noFetch=null,
raw=null, doNotDiscovery=null, retrieve=null,
allowNotFound=null))]</toString>
               </unknownJavaObject>
            </entry>
         </params>
         <context>
            <entry key='implementationClass'>
               <unknownJavaObject>
                  <class>java.lang.Class</class>
                  <toString>class
com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl</toString>
               </unknownJavaObject>
            </entry>
         </context>
         <token>1000000000000002508</token>
         <message>Schema error while processing schemaHandling section
of resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource): Definition of attribute
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}departmentNumber
not found in object class
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}AccountObjectClass
as defined in account type definition 'default' in definition of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource)</message>
         <partialResults>
           
<operation>com.evolveum.midpoint.provisioning.impl.ResourceManager.completeResource</operation>
            <status>partial_error</status>
            <token>1000000000000002511</token>
            <message>Schema error while processing schemaHandling
section of resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange
(Vejle) Resource): Definition of attribute
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}departmentNumber
not found in object class
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}AccountObjectClass
as defined in account type definition 'default' in definition of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource)</message>
           
<details>com.evolveum.midpoint.util.exception.SchemaException:
Definition of attribute
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}departmentNumber
not found in object class
{http://midpoint.evolveum.com/xml/ns/public/resource/instance-3}AccountObjectClass
as defined in account type definition 'default' in definition of
resource:29593a6a-019b-4bc9-8749-7bad43b9572b(APOS Exchange (Vejle)
Resource)
com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition.parseRefinedObjectClass(RefinedObjectClassDefinition.java:555)
com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition.parse(RefinedObjectClassDefinition.java:400)
com.evolveum.midpoint.common.refinery.RefinedResourceSchema.parseObjectTypeDefsFromSchemaHandling(RefinedResourceSchema.java:337)
com.evolveum.midpoint.common.refinery.RefinedResourceSchema.parse(RefinedResourceSchema.java:305)
com.evolveum.midpoint.common.refinery.RefinedResourceSchema.parse(RefinedResourceSchema.java:289)
com.evolveum.midpoint.common.refinery.RefinedResourceSchema.getRefinedSchema(RefinedResourceSchema.java:227)
com.evolveum.midpoint.common.refinery.RefinedResourceSchema.getRefinedSchema(RefinedResourceSchema.java:210)
com.evolveum.midpoint.provisioning.impl.ResourceManager.completeResource(ResourceManager.java:330)
com.evolveum.midpoint.provisioning.impl.ResourceManager.putToCache(ResourceManager.java:160)
com.evolveum.midpoint.provisioning.impl.ResourceManager.getResource(ResourceManager.java:154)
com.evolveum.midpoint.provisioning.impl.ProvisioningServiceImpl.getObject(ProvisioningServiceImpl.java:200)
com.evolveum.midpoint.model.impl.ModelObjectResolver.getObject(ModelObjectResolver.java:158)
com.evolveum.midpoint.model.impl.controller.ModelController.getObject(ModelController.java:278)
sun.reflect.GeneratedMethodAccessor610.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:435)
com.sun.proxy.$Proxy132.getObject(Unknown Source)
com.evolveum.midpoint.web.page.admin.resources.PageAdminResources.loadResource(PageAdminResources.java:87)
com.evolveum.midpoint.web.page.admin.resources.PageResource.loadResourceDto(PageResource.java:132)
com.evolveum.midpoint.web.page.admin.resources.PageResource.access$000(PageResource.java:81)
com.evolveum.midpoint.web.page.admin.resources.PageResource$1.load(PageResource.java:117)
com.evolveum.midpoint.web.page.admin.resources.PageResource$1.load(PageResource.java:113)
com.evolveum.midpoint.web.component.util.LoadableModel.getObject(LoadableModel.java:49)
org.apache.wicket.model.AbstractPropertyModel.getInnermostModelOrObject(AbstractPropertyModel.java:269)
org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:83)
com.evolveum.midpoint.web.component.util.ListDataProvider.internalSize(ListDataProvider.java:63)
com.evolveum.midpoint.web.component.data.BaseSortableDataProvider.size(BaseSortableDataProvider.java:184)
org.apache.wicket.markup.repeater.data.DataViewBase.internalGetItemCount(DataViewBase.java:142)
org.apache.wicket.markup.repeater.AbstractPageableView.getItemCount(AbstractPageableView.java:235)
org.apache.wicket.markup.repeater.AbstractPageableView.getRowCount(AbstractPageableView.java:216)
org.apache.wicket.markup.repeater.AbstractPageableView.getViewSize(AbstractPageableView.java:314)
org.apache.wicket.markup.repeater.AbstractPageableView.getItemModels(AbstractPageableView.java:99)
org.apache.wicket.markup.repeater.RefreshingView.onPopulate(RefreshingView.java:93)
org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:116)
org.apache.wicket.markup.repeater.AbstractPageableView.onBeforeRender(AbstractPageableView.java:115)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1684)
org.apache.wicket.Component.onBeforeRender(Component.java:3814)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1684)
org.apache.wicket.Component.onBeforeRender(Component.java:3814)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1684)
org.apache.wicket.Component.onBeforeRender(Component.java:3814)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1684)
org.apache.wicket.Component.onBeforeRender(Component.java:3814)
org.apache.wicket.markup.html.form.Form.onBeforeRender(Form.java:1756)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1684)
org.apache.wicket.Component.onBeforeRender(Component.java:3814)
org.apache.wicket.Page.onBeforeRender(Page.java:809)
org.apache.wicket.Component.internalBeforeRender(Component.java:935)
org.apache.wicket.Component.beforeRender(Component.java:1003)
org.apache.wicket.Component.internalPrepareForRender(Component.java:2179)
org.apache.wicket.Page.internalPrepareForRender(Page.java:240)
org.apache.wicket.Component.render(Component.java:2268)
org.apache.wicket.Page.renderPage(Page.java:1024)
org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:122)
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:276)
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
com.evolveum.midpoint.web.util.MidPointProfilingServletFilter.doFilter(MidPointProfilingServletFilter.java:86)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
</details>
            <partialResults>
              
<operation>com.evolveum.midpoint.repo.api.RepositoryService.getVersion</operation>
               <status>success</status>
               <params>
                  <entry key='oid'>
                    
<paramValue>e434fdba-5658-4541-9515-410fa5ca1e1a</paramValue>
                  </entry>
                  <entry key='type'>
                    
<paramValue>com.evolveum.midpoint.xml.ns._public.common.common_3.ConnectorType</paramValue>
                  </entry>
               </params>
               <token>1000000000000002512</token>
            </partialResults>
         </partialResults>
      </partialResults>
   </partialResults>
</operationResult>

-- 
Deepak Natarajan





More information about the midPoint mailing list