Hi,
from the snippet and stacktrace below, I have some observations:

1. why Syncope 2.0.1? it's one year old - FYI 2.0.6 was recently released, take a look at [1] to see how many issues were fixed ever since 2. Syncope on Karaf? It sounds interesting, though I am sorry I've zero experience with OSGi in general and Syncope on Karaf in particular
3. I also see Shiro involved: not sure how it comes into play
4. the User creator is set once for all by a JPA listener, and cannot be normally altered via REST 5. the actual error, e.g. "java.lang.IllegalArgumentException: Unresolved variables; only 0 value(s) given for 1 unique variable(s)" seems CXF-related, possibly to the fact that  the update method you are invoking [2] requires an explicit path parameter {key} which is not resolved at it should, e.g. by the value from the passed UserTO instance - but I'd suppose this is Karaf-specific

Regards.

[1] https://cwiki.apache.org/confluence/display/SYNCOPE/Jazz
[2] https://github.com/apache/syncope/blob/syncope-2.0.1/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java#L149

On 23/10/2017 04:52, Anh Nguyen Tuan wrote:
Hi team,

I'm using Syncope 2.0.1 and Syncope client API 2.0.1 deployed in OSGI environment (Karaf 4.0.4). When I read a user and update it as following:         UserService userService = m_syncopeServiceFactory.getUserService();         UserTO user = m_syncopeServiceFactory.getUserService().read(username);
        user.setCreator("test");
        userService.update(user);

I'm getting this error:
2017-10-22 15:52:31,197 | WARN  | tp304587724-1277 | AbstractAuthenticator            | 342 - org.apache.shiro.core - 1.3.2 | Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - adminuser, rememberMe=false (192.168.92.41)].  Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).
java.lang.reflect.UndeclaredThrowableException
    at com.sun.proxy.$Proxy96.update(Unknown Source)[420:security-app:1.0.0.SNAPSHOT]     at com.nokia.anv.app.security.SyncopeUserRealm.doGetAuthenticationInfo(SyncopeUserRealm.java:69)[420:security-app:1.0.0.SNAPSHOT]     at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.filter.authc.FormAuthenticationFilter.onAccessDenied(FormAuthenticationFilter.java:154)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)[342:org.apache.shiro.core:1.3.2]     at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)[344:org.apache.shiro.web:1.3.2]     at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)[344:org.apache.shiro.web:1.3.2]     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)[78:org.eclipse.jetty.servlet:9.2.14.v20151106]     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)[78:org.eclipse.jetty.servlet:9.2.14.v20151106]     at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[108:org.ops4j.pax.web.pax-web-jetty:4.2.4]     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[76:org.eclipse.jetty.security:9.2.14.v20151106]     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:271)[108:org.ops4j.pax.web.pax-web-jetty:4.2.4]     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[78:org.eclipse.jetty.servlet:9.2.14.v20151106]     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[108:org.ops4j.pax.web.pax-web-jetty:4.2.4]     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.Server.handle(Server.java:499)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[77:org.eclipse.jetty.server:9.2.14.v20151106]     at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[69:org.eclipse.jetty.io:9.2.14.v20151106]     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[80:org.eclipse.jetty.util:9.2.14.v20151106]     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[80:org.eclipse.jetty.util:9.2.14.v20151106]
    at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_40]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_40]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_40]
    at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_40]
    at com.nokia.anv.app.security.SyncopeServiceInvocationHandler.invoke(SyncopeServiceInvocationHandler.java:21)[420:security-app:1.0.0.SNAPSHOT]
    ... 46 more
Caused by: java.lang.IllegalArgumentException: Unresolved variables; only 0 value(s) given for 1 unique variable(s)     at org.apache.cxf.jaxrs.impl.UriBuilderImpl.substituteVarargs(UriBuilderImpl.java:285)     at org.apache.cxf.jaxrs.impl.UriBuilderImpl.doBuildUriParts(UriBuilderImpl.java:121)     at org.apache.cxf.jaxrs.impl.UriBuilderImpl.doBuild(UriBuilderImpl.java:101)     at org.apache.cxf.jaxrs.impl.UriBuilderImpl.buildFromEncoded(UriBuilderImpl.java:230)     at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:180)
    at com.sun.proxy.$Proxy86.update(Unknown Source)
    ... 51 more

I seem to be some issue when passing key to CXF, can you please have a look?

Regards,
Anh

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/

Reply via email to