diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-24 13:38:47 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-24 13:38:47 +0200 |
| commit | 64b768178dc9e64293a52c1b6d2631709af9502a (patch) | |
| tree | 6b7782fdbbbab4f734a1cb499cca03728c4f8f69 /Software/Visual_Studio/Web/Tango.MachineService/Security | |
| parent | 028ab0e5cc2699ceec3e04b1eeab5f56b9b38083 (diff) | |
| download | Tango-64b768178dc9e64293a52c1b6d2631709af9502a.tar.gz Tango-64b768178dc9e64293a52c1b6d2631709af9502a.zip | |
Removed all refresh tokens use :/
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Security')
3 files changed, 70 insertions, 9 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEncoder.cs b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEncoder.cs index 3948ae1c4..896788ffc 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEncoder.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEncoder.cs @@ -11,16 +11,16 @@ namespace Tango.MachineService.Security { public String Encode(T obj) { - String str = obj.ToJsonString(); + String json = JsonConvert.SerializeObject(obj); Rfc2898Cryptographer crypt = new Rfc2898Cryptographer(); - return crypt.Encrypt(str); + return crypt.Encrypt(json); } public T Decode(String token) { Rfc2898Cryptographer crypt = new Rfc2898Cryptographer(); - String str = crypt.Decrypt(token); - return JsonConvert.DeserializeObject<T>(str); + String json = crypt.Decrypt(token); + return JsonConvert.DeserializeObject<T>(json); } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEntity.cs b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEntity.cs new file mode 100644 index 000000000..2788799aa --- /dev/null +++ b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokenEntity.cs @@ -0,0 +1,55 @@ +using Microsoft.WindowsAzure.Storage.Table; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineService.Security +{ + public class RefreshTokenEntity<T> : TableEntity where T : class + { + /// <summary> + /// Initializes a new instance of the <see cref="RefreshTokenEntity"/> class. + /// </summary> + public RefreshTokenEntity() + { + + } + + + public RefreshTokenEntity(String identity, String accessToken, String refreshToken, DateTime expiration, T obj) + { + PartitionKey = MachineServiceConfig.REFRESH_TOKENS_TABLE_PARTITION; + + Identity = identity; + AccessToken = accessToken; + RefreshToken = refreshToken; + Expiration = expiration; + + RefreshTokenEncoder<T> encoder = new RefreshTokenEncoder<T>(); + Object = encoder.Encode(obj); + } + + [IgnoreProperty] + public String RefreshToken + { + get { return RowKey; } + set { RowKey = value; } + } + + public String Identity { get; set; } + + public String AccessToken { get; set; } + + public DateTime Expiration { get; set; } + + public String Object { get; set; } + + public T GetObject() + { + RefreshTokenEncoder<T> encoder = new RefreshTokenEncoder<T>(); + return encoder.Decode(RefreshToken); + } + } +} diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokensManager.cs b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokensManager.cs index 5cc206c63..06796c41e 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokensManager.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Security/RefreshTokensManager.cs @@ -7,7 +7,7 @@ using Tango.Web.Storage; namespace Tango.MachineService.Security { - public class RefreshTokensManager + public class RefreshTokensManager<T> where T : class { private TableStorageManager _manager; @@ -16,16 +16,22 @@ namespace Tango.MachineService.Security _manager = new TableStorageManager(); } - public RefreshTokenEntity GetToken(String refreshToken) + public RefreshTokenEntity<T> GetToken(String refreshToken) { var table = _manager.GetTable(MachineServiceConfig.REFRESH_TOKENS_TABLE_NAME); - return table.GetEntityAsync<RefreshTokenEntity>(MachineServiceConfig.REFRESH_TOKENS_TABLE_PARTITION, refreshToken).Result; + return table.GetEntity<RefreshTokenEntity<T>>(MachineServiceConfig.REFRESH_TOKENS_TABLE_PARTITION, refreshToken); } - public RefreshTokenEntity InsertOrUpdate(RefreshTokenEntity refreshTokenEntity) + public RefreshTokenEntity<T> InsertOrUpdate(RefreshTokenEntity<T> refreshTokenEntity) { var table = _manager.GetTable(MachineServiceConfig.REFRESH_TOKENS_TABLE_NAME); - return table.InsertOrUpdateEntityAsync(refreshTokenEntity).Result; + return table.InsertOrUpdateEntity(refreshTokenEntity); + } + + public void DeleteToken(RefreshTokenEntity<T> entity) + { + var table = _manager.GetTable(MachineServiceConfig.REFRESH_TOKENS_TABLE_NAME); + table.DeleteEntity(entity); } } }
\ No newline at end of file |
