diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-10-16 17:31:51 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-10-16 17:31:51 +0300 |
| commit | 4954a924b8a5b8fd7a213a444027e74b936359be (patch) | |
| tree | d91859a5fadf3d21b7fca106a000b30365f78a1b /Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs | |
| parent | 583d3716e37a9be80c8bb248215f343ed4fcd2d1 (diff) | |
| download | Tango-4954a924b8a5b8fd7a213a444027e74b936359be.tar.gz Tango-4954a924b8a5b8fd7a213a444027e74b936359be.zip | |
Added support for token authentication from MS to DB.
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs | 44 |
1 files changed, 41 insertions, 3 deletions
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<TokenObject>.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 } } |
