diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-02-24 10:54:16 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-02-24 10:54:16 +0200 |
| commit | 682018018e817ae15e9ab7f38a5d923b41c8cf9a (patch) | |
| tree | 799bcb84d8c0443c3cd91b576c95c73c06fa4a42 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs | |
| parent | 9650a4bd82398bcece7fb054c79f73996cd2d664 (diff) | |
| parent | 028ab0e5cc2699ceec3e04b1eeab5f56b9b38083 (diff) | |
| download | Tango-682018018e817ae15e9ab7f38a5d923b41c8cf9a.tar.gz Tango-682018018e817ae15e9ab7f38a5d923b41c8cf9a.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
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 } } |
