diff --git a/authentication/source/java/ch/systemsx/cisd/authentication/DummyAuthenticationService.java b/authentication/source/java/ch/systemsx/cisd/authentication/DummyAuthenticationService.java
index dfc01657fdde028d519ee06469ab7979f64a1c9f..c9506f2fd5beb7ff03d38c27ac11e6e1271876c0 100644
--- a/authentication/source/java/ch/systemsx/cisd/authentication/DummyAuthenticationService.java
+++ b/authentication/source/java/ch/systemsx/cisd/authentication/DummyAuthenticationService.java
@@ -33,7 +33,7 @@ public final class DummyAuthenticationService implements IAuthenticationService
      */
     public final Principal authenticate(String user, String password)
     {
-        return new Principal("John", "Doe", "jdoe@somewhere.org");
+        return new Principal(user, "John", "Doe", "jdoe@somewhere.org");
     }
 
     public final void checkAvailability()
diff --git a/authentication/source/java/ch/systemsx/cisd/authentication/Principal.java b/authentication/source/java/ch/systemsx/cisd/authentication/Principal.java
index 69391ceadadfbac3a7816b28399887dab912a113..21fd81c759ae33fde8533c6309284e6bbb093113 100644
--- a/authentication/source/java/ch/systemsx/cisd/authentication/Principal.java
+++ b/authentication/source/java/ch/systemsx/cisd/authentication/Principal.java
@@ -33,6 +33,8 @@ import org.apache.commons.lang.builder.ToStringBuilder;
  */
 public class Principal
 {
+    private final String userId;
+    
     private final String firstName;
 
     private final String lastName;
@@ -44,25 +46,35 @@ public class Principal
     /**
      * Default and unique constructor which accepts mandatory parameters.
      * 
+     * @param userId Must not be <code>null</code>.
      * @param firstName can not be <code>null</code>.
      * @param lastName can not be <code>null</code>.
      * @param email can not be <code>null</code>.
      */
-    public Principal(final String firstName, final String lastName, final String email)
+    public Principal(final String userId, final String firstName, final String lastName, final String email)
     {
+        assert userId != null;
         assert firstName != null;
         assert lastName != null;
         assert email != null;
+        
+        this.userId = userId;
         this.firstName = firstName;
         this.lastName = lastName;
         this.email = email;
         this.properties = new HashMap<String, Object>();
     }
 
+    /**
+     * Returns the id of the user.
+     */
+    public String getUserId()
+    {
+        return userId;
+    }
+
     /**
      * Returns <code>email</code>.
-     * 
-     * @return never <code>null</code>.
      */
     public final String getEmail()
     {
@@ -71,8 +83,6 @@ public class Principal
 
     /**
      * Returns <code>firstName</code>.
-     * 
-     * @return never <code>null</code>.
      */
     public final String getFirstName()
     {
@@ -81,8 +91,6 @@ public class Principal
 
     /**
      * Returns <code>lastName</code>.
-     * 
-     * @return never <code>null</code>.
      */
     public final String getLastName()
     {