Pre release #81
@@ -128,7 +128,7 @@ namespace Icarus.Controllers.Managers
|
|||||||
var result = false;
|
var result = false;
|
||||||
var token = DecodeToken(accessToken);
|
var token = DecodeToken(accessToken);
|
||||||
|
|
||||||
if (token == null)
|
if (token == null || token.Erroneous())
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -148,19 +148,26 @@ namespace Icarus.Controllers.Managers
|
|||||||
var rsaParams = GetRSAPublic(_publicKey);
|
var rsaParams = GetRSAPublic(_publicKey);
|
||||||
Token tok = null;
|
Token tok = null;
|
||||||
|
|
||||||
using (var rsa = new RSACryptoServiceProvider())
|
try
|
||||||
{
|
{
|
||||||
rsa.ImportParameters(rsaParams);
|
using (var rsa = new RSACryptoServiceProvider())
|
||||||
|
{
|
||||||
|
rsa.ImportParameters(rsaParams);
|
||||||
|
|
||||||
IJsonSerializer serializer = new JsonNetSerializer();
|
IJsonSerializer serializer = new JsonNetSerializer();
|
||||||
IDateTimeProvider provider = new UtcDateTimeProvider();
|
IDateTimeProvider provider = new UtcDateTimeProvider();
|
||||||
IJwtValidator validator = new JwtValidator(serializer, provider);
|
IJwtValidator validator = new JwtValidator(serializer, provider);
|
||||||
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
|
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
|
||||||
var algorithm = new JWT.Algorithms.RS256Algorithm(rsa);
|
var algorithm = new JWT.Algorithms.RS256Algorithm(rsa);
|
||||||
IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithm);
|
IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithm);
|
||||||
|
|
||||||
var json = decoder.Decode(accessToken);
|
var json = decoder.Decode(accessToken);
|
||||||
tok = JsonConvert.DeserializeObject<Token>(json);
|
tok = JsonConvert.DeserializeObject<Token>(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.Error("An error occurred: {0}", ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,16 @@ namespace Icarus.Models
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Erroneous()
|
||||||
|
{
|
||||||
|
var result = true;
|
||||||
|
Func<string, bool> isEmpty = a => string.IsNullOrEmpty(a);
|
||||||
|
result = (!isEmpty(Scope) && !isEmpty(Audience) && !isEmpty(Issuer) &&
|
||||||
|
Expiration > 0 && Issued > 0) ? false : true;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user