<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Can not setAuthenticatedUserId in rest API if there is customization authentication in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185925#M139055</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As we know, we can set the initiator like below code :&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;startEvent id="request" activiti:initiator="initiator" /&amp;gt;&lt;BR /&gt;The authenticated user must be set with the method BEFORE the process instance is started,&lt;BR /&gt;try {&lt;BR /&gt;&amp;nbsp; identityService.setAuthenticatedUserId("bono");&lt;BR /&gt;&amp;nbsp; runtimeService.startProcessInstanceByKey("someProcessKey");&lt;BR /&gt;} finally {&lt;BR /&gt;&amp;nbsp; identityService.setAuthenticatedUserId(null);&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is I want to start a new process with variables using the rest api, the command to start this is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://localhost:8080/activitirestservice/service/runtime/process-instances" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/activitirestservice/service/runtime/process-instances&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think it will be successful if we have not a custom authenticator in rest api service side.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The variables like below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; "processDefinitionKey":"leave",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "variables": [&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "name":"applyUserId",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "value":"Frank"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ]&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;The following words is jbarrez's feedback in &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/content/start-process-instance-user-using-rest-api#comment-30444" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/content/start-process-instance-user-using-rest-api#comment-30444&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;We've got a unit test for this: ProcessInstanceCollectionResourceTest.testStartProcess().&lt;BR /&gt;I ran this here, and it fills the start user just fine (user is set by client.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "kermit", "kermit");&lt;BR /&gt;)&lt;BR /&gt;Did you somehowe tweak the rest api or have a custom authenticator?&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But the system did not write the 'applyUserId' in field start_user_id of table act_hi_procinst, it always was wrote the word 'system user' that was setted in override 'authenticate' method&amp;nbsp; by me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;like above mention by jbarrez, I think&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the problem maybe was that I did a customization way to override 'authenticate' method.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also think it will work fine when I remove this customzation, but we don't want to authenticate in rest service side.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So is there any solution for this case ? How can i pass userId in initiator and don't remove authentication&amp;nbsp; customization.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any feedback will be greatly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To remove authentication in rest api service side, I did a customization,the following is my solution way&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. add customzation config in web.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;!– Restlet adapter –&amp;gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;lt;servlet&amp;gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;servlet-name&amp;gt;RestletServlet&amp;lt;/servlet-name&amp;gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;servlet-class&amp;gt;org.restlet.ext.servlet.ServerServlet&amp;lt;/servlet-class&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;init-param&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!– Application class name –&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;org.restlet.application&amp;lt;/param-name&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;com.phzc.activiti.custom.filter.CustomActivitiRestServicesApplication&amp;lt;/param-value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/init-param&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/servlet&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Create class CustomActivitiRestServicesApplication, the activiti user guide don't mention that override authenticate method,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but for my testing, I need&amp;nbsp; override this method, otherwise authentication is still need.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public class CustomActivitiRestServicesApplication extends ActivitiRestServicesApplication {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected RestResponseFactory restResponseFactory;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public CustomActivitiRestServicesApplication() {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; restAuthenticator = new RestAuthenticatorImpl();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setRestAuthenticator(restAuthenticator);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String authenticate(Request request, Response response) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(request.getClientInfo() != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(request.getClientInfo().getUser() != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return request.getClientInfo().getUser().getIdentifier();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "system user";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Override requestRequiresAuthentication method &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public class RestAuthenticatorImpl implements RestAuthenticator {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public boolean requestRequiresAuthentication(Request request) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public boolean isRequestAuthorized(Request request) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp; &lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jul 2015 07:35:55 GMT</pubDate>
    <dc:creator>youtianhong</dc:creator>
    <dc:date>2015-07-15T07:35:55Z</dc:date>
    <item>
      <title>Can not setAuthenticatedUserId in rest API if there is customization authentication</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185925#M139055</link>
      <description>Hello everyone,As we know, we can set the initiator like below code :&amp;lt;startEvent id="request" activiti:initiator="initiator" /&amp;gt;The authenticated user must be set with the method BEFORE the process instance is started,try {&amp;nbsp; identityService.setAuthenticatedUserId("bono");&amp;nbsp; runtimeService.startP</description>
      <pubDate>Wed, 15 Jul 2015 07:35:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185925#M139055</guid>
      <dc:creator>youtianhong</dc:creator>
      <dc:date>2015-07-15T07:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: Can not setAuthenticatedUserId in rest API if there is customization authentication</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185926#M139056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In your overrided &lt;/SPAN&gt;&lt;EM&gt;authenticate&lt;/EM&gt;&lt;SPAN&gt; method you need to return the user id that should be used.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your application uses custom authentication, you need to extract the current authenticated user id from the request. One way of doing that is as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[java]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public String authenticate(Request request, Response response) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // use org.restlet.ext.servlet.ServletUtils to get HttpServletRequest&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpServletRequest servletRequest = ServletUtils.getRequest(restletRequest);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String userId = // Add whatever logic to retrieve user id to be used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return userId;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/java]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you want to use another user id (other than the current authenticated user id) for the initiator then you need to use a custom implementation of &lt;/SPAN&gt;&lt;EM&gt;ProcessInstanceCollectionResource&lt;/EM&gt;&lt;SPAN&gt; class and call &lt;/SPAN&gt;&lt;EM&gt;identityService.setAuthenticatedUserId&lt;/EM&gt;&lt;SPAN&gt; before starting the process.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;Note that Restlet was replaced by Spring MVC since Activiti 5.16.4&lt;/EM&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jul 2015 04:00:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185926#M139056</guid>
      <dc:creator>balsarori</dc:creator>
      <dc:date>2015-07-19T04:00:08Z</dc:date>
    </item>
    <item>
      <title>Re: Can not setAuthenticatedUserId in rest API if there is customization authentication</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185927#M139057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Much Thanks balsarori for your detailed response.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Actuallty, I also thought that override ProcessInstanceCollectionResource&amp;nbsp; class and call identityService.setAuthenticatedUserId to solve this issue. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But this still has a problem, though this customization class can write the userId correctlly when we start a process instance, however we do other actions subsequently like 'claim task', 'complete task' etc, it will be overridden by "System user" which was written in 'authenticate' method again, because we know that every rest method has a validataion process like "if (!authenticate()) return null;" before invoking real API.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So I think we still need to modify 'authenticate' method, and receive the real userId in the client side.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to encapsulate rest api client side code, it's&amp;nbsp; like ActivitiClient.jar that can be embed in other web application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So i don't how to create a dummy HttpServletRequest,Since HttpServletRequest is an interface &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that is implemented by other web container&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I tested it like you mention as below code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // use org.restlet.ext.servlet.ServletUtils to get HttpServletRequest&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpServletRequest servletRequest = ServletUtils.getRequest(restletRequest);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//client side java code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; org.restlet.resource.ClientResource clientResource = new ClientResource(uri);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; clientResource.setReference(uri);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ClientInfo clientInfo = new ClientInfo();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; org.restlet.security.User user = new User();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; user.setIdentifier("Frank");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; clientInfo.setUser(user);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; clientResource.setClientInfo(clientInfo);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; //the other way&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; org.restlet.Request request = clientResource.createRequest();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Map map = new HashMap();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; map.put("user", "ygq");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; request.setAttributes(map);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For my debug in service side, I did not find the attribute in restletRequest or HttpServletRequest,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you know how to set this parameter in restlet client or how to&amp;nbsp; create a dummy HttpServletRequest ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot again!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Frank&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jul 2015 03:57:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/can-not-setauthenticateduserid-in-rest-api-if-there-is/m-p/185927#M139057</guid>
      <dc:creator>youtianhong</dc:creator>
      <dc:date>2015-07-21T03:57:34Z</dc:date>
    </item>
  </channel>
</rss>

