Code re-factorings and formatting for Basket.API project

This commit is contained in:
Rafsanul Hasan 2018-09-09 05:45:35 +06:00
parent 386c118616
commit d44c12e718
No known key found for this signature in database
GPG Key ID: FC57FD2D87BE60DD
36 changed files with 9751 additions and 9771 deletions

View File

@ -2998,12 +2998,10 @@ function pkcs1pad2(s,n) {
} }
// PKCS#1 (OAEP) mask generation function // PKCS#1 (OAEP) mask generation function
function oaep_mgf1_arr(seed, len, hash) function oaep_mgf1_arr(seed, len, hash) {
{
var mask = '', i = 0; var mask = '', i = 0;
while (mask.length < len) while (mask.length < len) {
{
mask += hash(String.fromCharCode.apply(String, seed.concat([ mask += hash(String.fromCharCode.apply(String, seed.concat([
(i & 0xff000000) >> 24, (i & 0xff000000) >> 24,
(i & 0x00ff0000) >> 16, (i & 0x00ff0000) >> 16,
@ -3018,17 +3016,14 @@ function oaep_mgf1_arr(seed, len, hash)
var SHA1_SIZE = 20; var SHA1_SIZE = 20;
// PKCS#1 (OAEP) pad input string s to n bytes, and return a bigint // PKCS#1 (OAEP) pad input string s to n bytes, and return a bigint
function oaep_pad(s, n, hash) function oaep_pad(s, n, hash) {
{ if (s.length + 2 * SHA1_SIZE + 2 > n) {
if (s.length + 2 * SHA1_SIZE + 2 > n)
{
throw "Message too long for RSA"; throw "Message too long for RSA";
} }
var PS = '', i; var PS = '', i;
for (i = 0; i < n - s.length - 2 * SHA1_SIZE - 2; i += 1) for (i = 0; i < n - s.length - 2 * SHA1_SIZE - 2; i += 1) {
{
PS += '\x00'; PS += '\x00';
} }
@ -3039,16 +3034,14 @@ function oaep_pad(s, n, hash)
var dbMask = oaep_mgf1_arr(seed, DB.length, hash || rstr_sha1); var dbMask = oaep_mgf1_arr(seed, DB.length, hash || rstr_sha1);
var maskedDB = []; var maskedDB = [];
for (i = 0; i < DB.length; i += 1) for (i = 0; i < DB.length; i += 1) {
{
maskedDB[i] = DB.charCodeAt(i) ^ dbMask.charCodeAt(i); maskedDB[i] = DB.charCodeAt(i) ^ dbMask.charCodeAt(i);
} }
var seedMask = oaep_mgf1_arr(maskedDB, seed.length, rstr_sha1); var seedMask = oaep_mgf1_arr(maskedDB, seed.length, rstr_sha1);
var maskedSeed = [0]; var maskedSeed = [0];
for (i = 0; i < seed.length; i += 1) for (i = 0; i < seed.length; i += 1) {
{
maskedSeed[i + 1] = seed[i] ^ seedMask.charCodeAt(i); maskedSeed[i + 1] = seed[i] ^ seedMask.charCodeAt(i);
} }
@ -3070,8 +3063,7 @@ function RSAKey() {
// Set the public key fields N and e from hex strings // Set the public key fields N and e from hex strings
function RSASetPublic(N, E) { function RSASetPublic(N, E) {
this.isPublic = true; this.isPublic = true;
if (typeof N !== "string") if (typeof N !== "string") {
{
this.n = N; this.n = N;
this.e = E; this.e = E;
} }
@ -3159,12 +3151,10 @@ function pkcs1unpad2(d,n) {
} }
// PKCS#1 (OAEP) mask generation function // PKCS#1 (OAEP) mask generation function
function oaep_mgf1_str(seed, len, hash) function oaep_mgf1_str(seed, len, hash) {
{
var mask = '', i = 0; var mask = '', i = 0;
while (mask.length < len) while (mask.length < len) {
{
mask += hash(seed + String.fromCharCode.apply(String, [ mask += hash(seed + String.fromCharCode.apply(String, [
(i & 0xff000000) >> 24, (i & 0xff000000) >> 24,
(i & 0x00ff0000) >> 16, (i & 0x00ff0000) >> 16,
@ -3179,26 +3169,22 @@ function oaep_mgf1_str(seed, len, hash)
var SHA1_SIZE = 20; var SHA1_SIZE = 20;
// Undo PKCS#1 (OAEP) padding and, if valid, return the plaintext // Undo PKCS#1 (OAEP) padding and, if valid, return the plaintext
function oaep_unpad(d, n, hash) function oaep_unpad(d, n, hash) {
{
d = d.toByteArray(); d = d.toByteArray();
var i; var i;
for (i = 0; i < d.length; i += 1) for (i = 0; i < d.length; i += 1) {
{
d[i] &= 0xff; d[i] &= 0xff;
} }
while (d.length < n) while (d.length < n) {
{
d.unshift(0); d.unshift(0);
} }
d = String.fromCharCode.apply(String, d); d = String.fromCharCode.apply(String, d);
if (d.length < 2 * SHA1_SIZE + 2) if (d.length < 2 * SHA1_SIZE + 2) {
{
throw "Cipher too short"; throw "Cipher too short";
} }
@ -3208,8 +3194,7 @@ function oaep_unpad(d, n, hash)
var seedMask = oaep_mgf1_str(maskedDB, SHA1_SIZE, hash || rstr_sha1); var seedMask = oaep_mgf1_str(maskedDB, SHA1_SIZE, hash || rstr_sha1);
var seed = [], i; var seed = [], i;
for (i = 0; i < maskedSeed.length; i += 1) for (i = 0; i < maskedSeed.length; i += 1) {
{
seed[i] = maskedSeed.charCodeAt(i) ^ seedMask.charCodeAt(i); seed[i] = maskedSeed.charCodeAt(i) ^ seedMask.charCodeAt(i);
} }
@ -3218,15 +3203,13 @@ function oaep_unpad(d, n, hash)
var DB = []; var DB = [];
for (i = 0; i < maskedDB.length; i += 1) for (i = 0; i < maskedDB.length; i += 1) {
{
DB[i] = maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i); DB[i] = maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i);
} }
DB = String.fromCharCode.apply(String, DB); DB = String.fromCharCode.apply(String, DB);
if (DB.substr(0, SHA1_SIZE) !== rstr_sha1('')) if (DB.substr(0, SHA1_SIZE) !== rstr_sha1('')) {
{
throw "Hash mismatch"; throw "Hash mismatch";
} }
@ -3235,8 +3218,7 @@ function oaep_unpad(d, n, hash)
var first_one = DB.indexOf('\x01'); var first_one = DB.indexOf('\x01');
var last_zero = (first_one != -1) ? DB.substr(0, first_one).lastIndexOf('\x00') : -1; var last_zero = (first_one != -1) ? DB.substr(0, first_one).lastIndexOf('\x00') : -1;
if (last_zero + 1 != first_one) if (last_zero + 1 != first_one) {
{
throw "Malformed data"; throw "Malformed data";
} }
@ -3246,8 +3228,7 @@ function oaep_unpad(d, n, hash)
// Set the private key fields N, e, and d from hex strings // Set the private key fields N, e, and d from hex strings
function RSASetPrivate(N, E, D) { function RSASetPrivate(N, E, D) {
this.isPrivate = true; this.isPrivate = true;
if (typeof N !== "string") if (typeof N !== "string") {
{
this.n = N; this.n = N;
this.e = E; this.e = E;
this.d = D; this.d = D;
@ -5504,20 +5485,16 @@ function b64utohex(s) {
var utf8tob64u, b64utoutf8; var utf8tob64u, b64utoutf8;
if (typeof Buffer === 'function') if (typeof Buffer === 'function') {
{ utf8tob64u = function (s) {
utf8tob64u = function (s)
{
return b64tob64u(new Buffer(s, 'utf8').toString('base64')); return b64tob64u(new Buffer(s, 'utf8').toString('base64'));
}; };
b64utoutf8 = function (s) b64utoutf8 = function (s) {
{
return new Buffer(b64utob64(s), 'base64').toString('utf8'); return new Buffer(b64utob64(s), 'base64').toString('utf8');
}; };
} }
else else {
{
// ==== utf8 / base64url ================================ // ==== utf8 / base64url ================================
/** /**
* convert a UTF-8 encoded string including CJK or Latin to a Base64URL encoded string.<br/> * convert a UTF-8 encoded string including CJK or Latin to a Base64URL encoded string.<br/>
@ -5525,8 +5502,7 @@ else
* @return {String} Base64URL encoded string * @return {String} Base64URL encoded string
* @since 1.1 * @since 1.1
*/ */
utf8tob64u = function (s) utf8tob64u = function (s) {
{
return hextob64u(uricmptohex(encodeURIComponentAll(s))); return hextob64u(uricmptohex(encodeURIComponentAll(s)));
}; };
@ -5536,8 +5512,7 @@ else
* @return {String} UTF-8 encoded string * @return {String} UTF-8 encoded string
* @since 1.1 * @since 1.1
*/ */
b64utoutf8 = function (s) b64utoutf8 = function (s) {
{
return decodeURIComponent(hextouricmp(b64utohex(s))); return decodeURIComponent(hextouricmp(b64utohex(s)));
}; };
} }

View File

@ -17,7 +17,9 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Auth.Server
if (isAuthorized && !allowAnonymous) if (isAuthorized && !allowAnonymous)
{ {
if (operation.Parameters == null) if (operation.Parameters == null)
{
operation.Parameters = new List<IParameter>(); operation.Parameters = new List<IParameter>();
}
operation.Parameters.Add(new NonBodyParameter operation.Parameters.Add(new NonBodyParameter
{ {

View File

@ -6,8 +6,6 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Controllers
{ {
// GET: /<controller>/ // GET: /<controller>/
public IActionResult Index() public IActionResult Index()
{ => new RedirectResult("~/swagger");
return new RedirectResult("~/swagger");
}
} }
} }

View File

@ -7,8 +7,6 @@ namespace Basket.API.Infrastructure.ActionResults
{ {
public InternalServerErrorObjectResult(object error) public InternalServerErrorObjectResult(object error)
: base(error) : base(error)
{ => StatusCode = StatusCodes.Status500InternalServerError;
StatusCode = StatusCodes.Status500InternalServerError;
}
} }
} }

View File

@ -6,9 +6,7 @@ namespace Basket.API.Infrastructure.Middlewares
public static class FailingMiddlewareAppBuilderExtensions public static class FailingMiddlewareAppBuilderExtensions
{ {
public static IApplicationBuilder UseFailingMiddleware(this IApplicationBuilder builder) public static IApplicationBuilder UseFailingMiddleware(this IApplicationBuilder builder)
{ => UseFailingMiddleware(builder, null);
return UseFailingMiddleware(builder, null);
}
public static IApplicationBuilder UseFailingMiddleware(this IApplicationBuilder builder, Action<FailingOptions> action) public static IApplicationBuilder UseFailingMiddleware(this IApplicationBuilder builder, Action<FailingOptions> action)
{ {
var options = new FailingOptions(); var options = new FailingOptions();

View File

@ -1,7 +1,6 @@
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Primitives; using Microsoft.Extensions.Primitives;
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;

View File

@ -1,20 +1,26 @@
using Basket.API.Infrastructure.Middlewares; using Basket.API.Infrastructure.Middlewares;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System; using static Microsoft.AspNetCore.Hosting.ApplicationInsightsWebHostBuilderExtensions;
using System.IO; using static Microsoft.AspNetCore.Hosting.HealthCheckWebHostBuilderExtension;
using static Microsoft.AspNetCore.Hosting.HostingAbstractionsWebHostBuilderExtensions;
using static Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions;
using static Microsoft.AspNetCore.Hosting.WebHostExtensions;
using static Microsoft.Extensions.Configuration.AzureKeyVaultConfigurationExtensions;
using static Microsoft.Extensions.Configuration.ChainedBuilderExtensions;
using static Microsoft.Extensions.Configuration.EnvironmentVariablesExtensions;
using ConfigurationBuilder = Microsoft.Extensions.Configuration.ConfigurationBuilder;
using Convert = System.Convert;
using Directory = System.IO.Directory;
using IWebHost = Microsoft.AspNetCore.Hosting.IWebHost;
using WebHost = Microsoft.AspNetCore.WebHost;
namespace Microsoft.eShopOnContainers.Services.Basket.API namespace Microsoft.eShopOnContainers.Services.Basket.API
{ {
public class Program public class Program
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ => BuildWebHost(args).Run();
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) => public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args) WebHost.CreateDefaultBuilder(args)

View File

@ -50,12 +50,14 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
RegisterAppInsights(services); RegisterAppInsights(services);
// Add framework services. // Add framework services.
services.AddMvc(options => services
.AddMvc(options =>
{ {
options.Filters.Add(typeof(HttpGlobalExceptionFilter)); options.Filters.Add(typeof(HttpGlobalExceptionFilter));
options.Filters.Add(typeof(ValidateModelStateFilter)); options.Filters.Add(typeof(ValidateModelStateFilter));
}).AddControllersAsServices(); })
.AddControllersAsServices();
ConfigureAuthService(services); ConfigureAuthService(services);
@ -74,7 +76,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
//and then creating the connection it seems reasonable to move //and then creating the connection it seems reasonable to move
//that cost to startup instead of having the first request pay the //that cost to startup instead of having the first request pay the
//penalty. //penalty.
services.AddSingleton<ConnectionMultiplexer>(sp => services.AddSingleton(sp =>
{ {
var settings = sp.GetRequiredService<IOptions<BasketSettings>>().Value; var settings = sp.GetRequiredService<IOptions<BasketSettings>>().Value;
var configuration = ConfigurationOptions.Parse(settings.ConnectionString, true); var configuration = ConfigurationOptions.Parse(settings.ConnectionString, true);
@ -238,12 +240,14 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API
var identityUrl = Configuration.GetValue<string>("IdentityUrl"); var identityUrl = Configuration.GetValue<string>("IdentityUrl");
services.AddAuthentication(options => services
.AddAuthentication(options =>
{ {
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options => })
.AddJwtBearer(options =>
{ {
options.Authority = identityUrl; options.Authority = identityUrl;
options.RequireHttpsMetadata = false; options.RequireHttpsMetadata = false;