public void SetsThePassword(NonEmptyString passwordString) { var email = Email.Empty; var password = Password.From(passwordString.Get); var parameter = CredentialsParameter.With(email, password); ViewModel.Prepare(parameter); ViewModel.Password.Should().Be(password); }
public void SetsThePassword(NonEmptyString passwordString) { var viewModel = CreateViewModel(); var email = Email.Empty; var password = Password.From(passwordString.Get); var parameter = CredentialsParameter.With(email, password); var expectedValues = new[] { Password.Empty.ToString(), password.ToString() }; var actualValues = new List <string>(); viewModel.Password.Subscribe(actualValues.Add); viewModel.Prepare(parameter); TestScheduler.Start(); CollectionAssert.AreEqual(expectedValues, actualValues); }
public void SetsTheEmail(NonEmptyString emailString) { var viewModel = CreateViewModel(); var email = Email.From(emailString.Get); var password = Password.Empty; var parameter = CredentialsParameter.With(email, password); var expectedValues = new[] { Email.Empty.ToString(), email.TrimmedEnd().ToString() }.Distinct(); var actualValues = new List <string>(); viewModel.Email.Subscribe(actualValues.Add); viewModel.Initialize(parameter); TestScheduler.Start(); CollectionAssert.AreEqual(expectedValues, actualValues); }
public void ConfigureServices(IServiceCollection services) { var path = Path.Combine(Directory.GetCurrentDirectory(), "credentials.json"); var credentials = new CredentialsParameter(); if (File.Exists(path)) { credentials = JsonConvert.DeserializeObject <CredentialsParameter>(File.ReadAllText(path)); } var migrationsAssembly = typeof(OpenIdStartup).GetTypeInfo().Assembly.GetName().Name; var issuerSigningKey = ExtractIssuerSigningKey("openid_key.txt"); services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader())); services.AddMvc(option => { option.EnableEndpointRouting = false; option.Filters.Add(typeof(ExceptionFilter)); }).AddNewtonsoftJson(); services.AddAuthorization(opts => opts.AddDefaultOAUTHAuthorizationPolicy()); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie() .AddCookie(SIDOpenIdConstants.ExternalAuthenticationScheme) .AddJwtBearer(OAuth.Constants.AuthenticationScheme, cfg => { cfg.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters { ValidAudiences = new List <string> { "humanTaskClient", "gatewayClient", "provisioningClient" }, ValidateIssuer = false, ValidateIssuerSigningKey = true, IssuerSigningKey = issuerSigningKey }; }) .AddCertificate(o => { o.RevocationFlag = X509RevocationFlag.EntireChain; o.RevocationMode = X509RevocationMode.NoCheck; }); services.AddCommonSID(); services.AddSIDOpenID(opt => { opt.IsLocalhostAllowed = true; opt.IsRedirectionUrlHTTPSRequired = false; opt.IsInitiateLoginUriHTTPSRequired = true; }, opt => { opt.MtlsEnabled = true; opt.DefaultScopes = new List <string> { SIDOpenIdConstants.StandardScopes.Profile.Name, SIDOpenIdConstants.StandardScopes.Email.Name, SIDOpenIdConstants.StandardScopes.Address.Name, SIDOpenIdConstants.StandardScopes.Phone.Name, SIDOpenIdConstants.StandardScopes.OfflineAccessScope.Name }; }, massTransitOptions: opt => { opt.UsingRabbitMq((c, t) => { var connectionString = _configuration["RabbitMQ"]; if (!string.IsNullOrWhiteSpace(connectionString)) { t.Host(connectionString); } }); }) .AddOpenIDEF(opt => { opt.UseSqlServer(_configuration.GetConnectionString("OpenId"), o => o.MigrationsAssembly(migrationsAssembly)); }) .AddLoginPasswordAuthentication() .AddSMSAuthentication() .AddEmailAuthentication(opts => { opts.SmtpUserName = credentials.Login; opts.SmtpPassword = credentials.Password; opts.FromEmail = credentials.Login; }) .AddDynamicAuthenticationProviders(); // ConfigureFireBase(); services.AddDataProtection() .PersistKeysToFileSystem(new DirectoryInfo(Directory.GetCurrentDirectory())); services.Configure <ForwardedHeadersOptions>(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; }); }