Running java code as a different user.

We run into quite some issues with security – this is due to our solution. Our task based security solution needs to update files/folder (noderefs) from user X while the system (the workflow task) is currently assigned to user Y.

This construction helped us somewhat;

String test = AuthenticationUtil.runAs(new RunAsWork<String>() {
                public String doWork() throws Exception {

                          …. do some stuff ….

                 } // end public doWork
            }, AuthenticationUtil.getSystemUserName());


But now I also found this blog – this also helps me with current sys user settings.



Date Calendar GregorianCalendar

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


If I extract a date from a node in Alfresco, I cannot cast directly to Calendar or GregorianCalendar. So I cast the Serializable return type from Alfresco to the Date class.
Date d = (java.util.Date) nodeService.getProperty(nr, INCENTROmodel.STARTDATE);


But java.util.Date is depricated since Java 1.1
The date.getTime() function still works.
It return the amount of ms since the beginning of time (aka 1 jan 1970)
long gt = d.getTime();


And the GregorianCalendar knows this. So
GregorianCalendar gc = new GregorianCalendar();

Post no. 3_million_and_1 about the java.util.Date / java.util.Calendar / java.util.GregorianCalendar