[midPoint] departmentNumber attribute for AccountObjectClass in AD.

Ivan Noris Ivan.Noris at evolveum.com
Tue Sep 9 14:12:23 CEST 2014


Hi Deepak,

you can still use the Configuration / Repository objects to modify the schema.

The resource wizard is being implemented and tested right now.

I believe Pavol can share additional information about flexible extending AD connector schema.

Regards,
Ivan

-- 
  Ing. Ivan Noris
  Senior Identity Management Engineer
  evolveum.com
  ___________________________________________
           "Idem per idem - semper idem Vix."

----- Original Message -----
> From: "Deepak Natarajan" <dnataraj at trilobytesystems.com>
> To: "midPoint General Discussion" <midpoint at lists.evolveum.com>
> Sent: Tuesday, September 9, 2014 2:02:17 PM
> Subject: [midPoint] departmentNumber attribute for AccountObjectClass in AD.
> 
> 
> 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
> 
> 
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint
> 



More information about the midPoint mailing list