aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs36
1 files changed, 32 insertions, 4 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
index 467b6ae28..324878f25 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
@@ -18,9 +18,10 @@ using Tango.MachineStudio.Common.Web;
using Tango.Web.Controllers;
using Tango.Web.Helpers;
using Tango.Web.Storage;
-using Tango.Web.Authentication;
+using Tango.Web.Security;
using Tango.Web.ActiveDirectory;
using Tango.MachineService.Filters;
+using Tango.MachineService.Security;
namespace Tango.MachineService.Controllers
{
@@ -34,6 +35,12 @@ namespace Tango.MachineService.Controllers
public String UserGuid { get; set; }
}
+ public class RefreshTokenObject
+ {
+ public String Email { get; set; }
+ public String Password { get; set; }
+ }
+
#region Constructors
/// <summary>
@@ -85,7 +92,7 @@ namespace Tango.MachineService.Controllers
if (latestVersion != null && Version.Parse(latestVersion.Version) > currentVersion)
{
- var manager = new StorageManager();
+ var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.MACHINE_STUDIO_VERSIONS_CONTAINER);
var blob = container.GetBlockBlobReference(latestVersion.BlobName);
@@ -121,7 +128,7 @@ namespace Tango.MachineService.Controllers
if (latestVersion != null)
{
- var manager = new StorageManager();
+ var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.MACHINE_STUDIO_VERSIONS_CONTAINER);
var blob = container.GetBlockBlobReference(latestVersion.BlobName);
@@ -161,7 +168,7 @@ namespace Tango.MachineService.Controllers
{
String newVersionFileName = "Machine Studio Version" + " " + currentVersion.ToString() + ".zip";
- var manager = new StorageManager();
+ var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.MACHINE_STUDIO_VERSIONS_CONTAINER);
var blob = container.CreateEmptyBlob(newVersionFileName);
@@ -359,6 +366,27 @@ namespace Tango.MachineService.Controllers
};
}
+ [HttpPost]
+ [JwtTokenFilter(allowExpired: true)]
+ public RenewTokenResponse Renew(RenewTokenRequest request)
+ {
+ RefreshTokensManager manager = new RefreshTokensManager();
+ var entity = manager.GetToken(request.RefreshToken);
+
+ if (entity.AccessToken != RequestToken.AccessToken)
+ {
+ throw new AuthenticationException("Invalid access token and refresh token combination.");
+ }
+
+ var newToken = RequestToken.Renew(MachineServiceConfig.JWT_TOKEN_SECRET, entity.AccessToken);
+
+ return new RenewTokenResponse()
+ {
+ AccessToken = entity.AccessToken,
+ RefreshToken = entity.RefreshToken,
+ };
+ }
+
#endregion
}
}