2017-08-15 4 views
0

Beim Versuch, einen Benutzer durch Scim Patch Anfrage zu aktualisieren, bekomme ich einen Fehler und ich bin mir nicht sicher, was das Problem ist.Wso2 Scim Benutzer Update mit Patch

Dies ist die Anfrage

curl -v -k --user admin:admin -X PATCH -d '{ 
     "schemas": ["urn:scim:schemas:core:1.0"], 
      "name": { 
        "familyName": "Tester" 
       }, 
      "meta": { 
      } 
}' --header "Content-Type:application/json" https://localhost:9443/wso2/scim/Users/user-id-here 

und das ist der Fehler in WSO2

ERROR {org.apache.catalina.core.StandardWrapperValve} - Servlet.service() for servlet [SCIMServlet] in context with path [/wso2] threw exception 
java.lang.RuntimeException: org.apache.cxf.interceptor.Fault 
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116) 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:336) 
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249) 
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248) 
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222) 
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153) 
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) 
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289) 
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:267) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:72) 
    at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:91) 
    at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:60) 
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) 
    at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) 
    at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) 
    at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) 
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) 
    at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958) 
    at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:748) 
Caused by: org.apache.cxf.interceptor.Fault 
    at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:170) 
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:136) 
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204) 
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101) 
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94) 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) 
    ... 42 more 
Caused by: java.lang.NullPointerException 
    at org.wso2.charon.core.protocol.endpoints.UserResourceEndpoint.updateWithPATCH(UserResourceEndpoint.java:622) 
    at org.wso2.carbon.identity.scim.provider.resources.UserResource.updateUserPATCH(UserResource.java:307) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188) 
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104) 
    ... 47 more 

ich die Anfrage tat, wie pro Scim doc

Es gibt ein ähnliches Ticket an der WSO2 ist issue tracker aber es gilt als festgelegt.

Nicht sicher, was das Problem ist. Ist es ein Problem in der Anfrage oder in einer Wso2-Konfiguration?

Antwort

0

Es gibt drei Probleme in Ihrer Patch-Anfrage.

  1. BenutzerName-Attribut fehlt. Die WSO2-Implementierung erfordert das Attribut userName, wenn Sie eine PATCH-Operation für den Benutzer ausführen.

  2. Das "Meta" -Attribut hat kein Unterattribut "Attribute". Dies ist ein Spezifikationsverstoß. Wenn Sie keine zu entfernenden Attribute haben, können Sie das Meta-Attribut grundsätzlich komplett weglassen.

  3. Festlegen des Schemas "" urn: scim: schemas: Kern: 1,0" scheint ein Problem in der WSO2 Identity Server Implementierung zu erschaffen

Das Folgende ist eine Arbeitsversion des curl Befehl. Sie verwendet haben

curl -v -k --user admin:admin -X PATCH -d "{ 
"schemas":[], 
"name":{ 
    "familyName": "Tester" 
}, 
"userName":"indunil", 
"meta": { 
    "attributes":[] 
} 
}" 
--header "Content-Type:application/json" https://localhost:9443/wso2/scim/Users/e9e57b58-3e90-4165-aadc-697a06f1eb9e 
+0

Nach der Anforderung ändert i eine 'bekam [LDAP: Fehlercode 19 - entryUUID: nein erlaubt Benutzer Modifikation]..', das nur war, weil 'entryUUID' ein Operationsfeld ist ich denke, also habe ich die ID zu einer anderen Spalte und es hat funktioniert – nickGR

Verwandte Themen