diff options
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs | 36 |
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 } } |
