diff --git a/src/python/dm/ds_web_service/api/authRestApi.py b/src/python/dm/ds_web_service/api/authRestApi.py
index 571f9f31a078a7b09dc60c74fa0662a0c5136c44..0996a14cf905de7bf61c80739f84e4a6ace4afca 100755
--- a/src/python/dm/ds_web_service/api/authRestApi.py
+++ b/src/python/dm/ds_web_service/api/authRestApi.py
@@ -1,12 +1,14 @@
 #!/usr/bin/env python
 
 import os
+import json
 import urllib
 
 from dm.common.utility.encoder import Encoder
 from dm.common.exceptions.dmException import DmException
 from dm.common.exceptions.invalidRequest import InvalidRequest
 from dm.common.objects.authorizationPrincipal import AuthorizationPrincipal
+from dm.common.objects.dmSession import DmSession
 from dsRestApi import DsRestApi
 
 class AuthRestApi(DsRestApi):
@@ -23,6 +25,25 @@ class AuthRestApi(DsRestApi):
         responseData = self.sendSessionRequest(url=url, method='GET')
         return AuthorizationPrincipal(responseData)
 
+    @DsRestApi.execute
+    def addSession(self, sessionId, sessionInfo):
+        if sessionId is None:
+            raise InvalidRequest('Session id must be provided.')
+        if sessionInfo is None:
+            raise InvalidRequest('Session info must be provided.')
+        url = '%s/sessions/%s' % (self.getContextRoot(), sessionId)
+        url += '?sessionInfo=%s' % Encoder.encode(json.dumps(sessionInfo))
+        responseData = self.sendSessionRequest(url=url, method='POST')
+        return DmSession(responseData)
+
+    @DsRestApi.execute
+    def checkSession(self, sessionId):
+        if sessionId is None:
+            raise InvalidRequest('Session id must be provided.')
+        url = '%s/sessions/%s' % (self.getContextRoot(), sessionId)
+        responseData = self.sendSessionRequest(url=url, method='PUT')
+        return DmSession(responseData)
+
 #######################################################################
 # Testing.