From 4954a924b8a5b8fd7a213a444027e74b936359be Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 16 Oct 2019 17:31:51 +0300 Subject: Added support for token authentication from MS to DB. --- .../Controllers/MachineStudioController.cs | 44 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs') diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs index b718887af..dd8401570 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs @@ -22,6 +22,7 @@ using Tango.Web.Security; using Tango.Web.ActiveDirectory; using Tango.MachineService.Filters; using Tango.MachineService.Security; +using Tango.Web.SQLServer; namespace Tango.MachineService.Controllers { @@ -356,9 +357,26 @@ namespace Tango.MachineService.Controllers } } - return new LoginResponse() + Core.DataSource dataSource = null; + + if (MachineServiceConfig.USE_DB_ACCESS_TOKENS) { - DataSource = new Core.DataSource() + SQLServerManager sqlServer = new SQLServerManager(); + var accessToken = sqlServer.GetAccessToken(); + + dataSource = new Core.DataSource() + { + Address = MachineServiceConfig.DB_ADDRESS, + Catalog = MachineServiceConfig.DB_CATALOG, + Type = Core.DataSourceType.AccessToken, + IntegratedSecurity = false, + AccessToken = accessToken.AccessToken, + AccessTokenExpiration = accessToken.ExpiresOn.UtcDateTime + }; + } + else + { + dataSource = new Core.DataSource() { Address = MachineServiceConfig.DB_ADDRESS, Catalog = MachineServiceConfig.DB_CATALOG, @@ -366,8 +384,12 @@ namespace Tango.MachineService.Controllers IntegratedSecurity = false, UserName = request.Email, Password = request.Password, - }, + }; + } + return new LoginResponse() + { + DataSource = dataSource, AccessToken = WebToken.CreateNew(MachineServiceConfig.JWT_TOKEN_SECRET, new TokenObject() { UserGuid = user.Guid, @@ -377,6 +399,22 @@ namespace Tango.MachineService.Controllers }; } + [JwtTokenFilter] + public RefreshTokenResponse RefreshToken(RefreshTokenRequest request) + { + SQLServerManager sqlServer = new SQLServerManager(); + var accessToken = sqlServer.GetAccessToken(); + + //TokenManager tokenManager = new TokenManager(); + //tokenManager.UpdateToken(request.AccessToken, accessToken.AccessToken, accessToken.ExpiresOn.UtcDateTime); + + return new RefreshTokenResponse() + { + AccessToken = accessToken.AccessToken, + Expiration = accessToken.ExpiresOn.UtcDateTime, + }; + } + #endregion } } -- cgit v1.3.1