public void ValidateUser_EmptyPassword()
 {
     Assert.Throws <UnprocessableEntityException>(
         () => JwtAuthenticationService.ValidateUser(new User {
         EMail = "test"
     }, ""));
 }
Exemple #2
0
        private static User CreateUser()
        {
            using (var ctx = _factory.CreateDbContext(new string[0]))
            {
                Console.WriteLine("Username (must be an Email): ");
                string username;
                do
                {
                    username = Console.ReadLine();
                } while (!username.IsValidEmail());

                Console.WriteLine("Password");
                var password = Console.ReadLine();

                var user = JwtAuthenticationService.CreateNewUser(username);
                JwtAuthenticationService.UpdatePassword(user, password);
                ctx.Users.Add(user);
                ctx.SaveChanges();

                var person = new RealPerson
                {
                    Firstname = "Mr.",
                    Lastname  = "Administrator",
                    UserId    = user.Id
                };

                ctx.RealPeople.Add(person);
                ctx.SaveChanges();

                return(user);
            }
        }
Exemple #3
0
 public IdentityController(UserDataSource uds, IdentityDataSource ids, IdentityService isrv,
                           JwtAuthenticationService jwtAuthSrv)
 {
     _userDataSource           = uds ?? throw new ArgumentNullException(nameof(uds));
     _identityDataSource       = ids ?? throw new ArgumentNullException(nameof(ids));
     _identityService          = isrv ?? throw new ArgumentNullException(nameof(isrv));
     _jwtAuthenticationService = jwtAuthSrv ?? throw new ArgumentNullException(nameof(jwtAuthSrv));
 }
        public void IsThereAuthentication_ReturnsCorrectly(ApiContext context, bool expectedResult)
        {
            var service = new JwtAuthenticationService(context, It.IsAny <string>(), It.IsAny <string>());

            var actual = service.IsThereAuthentication();

            Assert.AreEqual(expectedResult, actual);
        }
 public AuthenticationController(
     IdentityService identityService,
     JwtAuthenticationService jwtAuthenticationService,
     IIdentityDataSource identityDataSource,
     IUserDataSource userDataSource)
 {
     _identityService          = identityService;
     _jwtAuthenticationService = jwtAuthenticationService;
     _identityDataSource       = identityDataSource;
     _userDataSource           = userDataSource;
 }
        public void CreateNewUser()
        {
            var username = "******";
            var usr      = JwtAuthenticationService.CreateNewUser(username);

            Assert.Equal(username, usr.EMail);
            Assert.True(string.IsNullOrWhiteSpace(usr.Password));
            Assert.True(string.IsNullOrWhiteSpace(usr.ResetHash));
            Assert.NotNull(usr.Claims.FirstOrDefault(x => x.Type == UsernameClaim.USERNAME_CLAIM_TYPE &&
                                                     x.Value == username));
        }
        public void UpdatePassword()
        {
            var user = new User();
            var pwd  = "NewPassword";

            pwd.HashPassword();

            JwtAuthenticationService.UpdatePassword(user, pwd);
            Assert.False(string.IsNullOrWhiteSpace(user.Password));
            Assert.False(string.IsNullOrWhiteSpace(user.Salt));
            Assert.True(string.IsNullOrWhiteSpace(user.ResetHash));
        }
Exemple #8
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <JwtAuthenticationService.Options>(
                Configuration.GetSection("Authentication"));

            services.Configure <ImageProcessingService.Options>(
                Configuration.GetSection("ImageProcessing"));

            JwtAuthenticationService.AddJwtAuthentication(
                services,
                Configuration.GetValue <string>("Authentication:Secret"));

            services.AddSingleton(sp =>
                                  new Database(Configuration.GetConnectionString("DefaultConnection")));

            services.AddSingleton(sp =>
                                  new AzureStorage(Configuration.GetConnectionString("StorageConnection")));

            services.AddSingleton <MigrationDataSource>();
            services.AddSingleton <UserDataSource>();
            services.AddSingleton <IdentityDataSource>();
            services.AddSingleton <PostDataSource>();
            services.AddSingleton <FollowDataSource>();

            services.AddSingleton <MigrationService>();
            services.AddSingleton <IdentityService>();
            services.AddSingleton <ImageProcessingService>();
            services.AddSingleton <JwtAuthenticationService>();

            services.AddMvc(options =>
            {
                options.Filters.Add(new ValidateModelAttribute());
                options.InputFormatters.RemoveType <JsonPatchInputFormatter>();
            });

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "Social API", Version = "v1"
                });
                c.IncludeXmlComments(Path.Combine(
                                         AppContext.BaseDirectory,
                                         Assembly.GetEntryAssembly().GetName().Name + ".xml"));

                c.OperationFilter <JsonOperationFilter>();
                c.OperationFilter <AuthResponsesOperationFilter>();
                c.OperationFilter <FormFileOperationFilter>();
                c.OperationFilter <ResponseCodeOperationFilter>();
            });

            services.AddCors();
        }
        public void ValidateUser_WrongPassword()
        {
            var usr       = new User();
            var password  = "******";
            var hashTuple = password.HashPassword();

            usr.Password = hashTuple.Item1;
            usr.Salt     = hashTuple.Item2;
            usr.EMail    = "Username";
            usr.Claims.Add(UserClaim.FromClaim(new UsernameClaim(usr.EMail)));

            Assert.Throws <UnauthorizedException>(() => JwtAuthenticationService.ValidateUser(usr, "wrong password"));
        }
        public void ValidateUser_Success()
        {
            var usr       = new User();
            var password  = "******";
            var hashTuple = password.HashPassword();

            usr.Password = hashTuple.Item1;
            usr.Salt     = hashTuple.Item2;
            usr.EMail    = "Username";
            usr.Claims.Add(UserClaim.FromClaim(new UsernameClaim(usr.EMail)));

            JwtAuthenticationService.ValidateUser(usr, password);
        }
Exemple #11
0
 public MessagePushHandler(
     RequestDelegate next,
     IApplicationLifetime appLifetime,
     IConversationDataSource conversationDataSource,
     JwtAuthenticationService jwtAuthentioncationService,
     string url)
 {
     _next = next;
     _applicationStoppingCancellationToken = appLifetime.ApplicationStopping;
     _conversationDataSource     = conversationDataSource;
     _jwtAuthentioncationService = jwtAuthentioncationService;
     _url = url;
 }
Exemple #12
0
 public AccountController(
     SignInManager <ApplicationUser> signInManager,
     UserManager <ApplicationUser> userManager,
     ILogger <AccountController> logger,
     JwtAuthenticationService tokenService,
     AccountService accountService,
     UserService userService)
 {
     _signInManager  = signInManager;
     _userManager    = userManager;
     _logger         = logger;
     _accountService = accountService;
     _tokenService   = tokenService;
     _userService    = userService;
 }
        public void UpdateUsername()
        {
            const string NEW_USERNAME = "******";
            var          user         = new User
            {
                EMail = "*****@*****.**"
            };

            user.Claims.Add(new UsernameClaim("*****@*****.**"));
            user.Claims.Add(new UsernameClaim("*****@*****.**"));

            JwtAuthenticationService.UpdateUsername(user, NEW_USERNAME);

            Assert.Equal(1, user.Claims.Count);
            Assert.Equal(UsernameClaim.USERNAME_CLAIM_TYPE, user.Claims.FirstOrDefault()?.Type);
            Assert.Equal(NEW_USERNAME, user.Claims.FirstOrDefault()?.Value);
            Assert.Equal(NEW_USERNAME, user.EMail);
        }
Exemple #14
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <JwtAuthenticationService.Options>(
                Configuration.GetSection("Authentication"));

            JwtAuthenticationService.AddJwtAuthentication(
                services,
                Configuration.GetValue <string>("Authentication:Secret"));

            services.AddMongo(Configuration.GetSection("Mongo"));

            services.AddRedis(Configuration.GetSection("Redis"));

            services.AddSingleton <IdentityService>();
            services.AddSingleton <JwtAuthenticationService>();
            services.AddCors();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "Messenger API", Version = "v1"
                });

                // TODO: не исопльзовать имена сборок явно
                c.IncludeXmlComments(Path.Combine(
                                         AppContext.BaseDirectory, "WebApi.xml"));
                c.IncludeXmlComments(Path.Combine(
                                         AppContext.BaseDirectory, "Abstractions.xml"));

                c.OperationFilter <JsonOperationFilter>();
                c.OperationFilter <AuthResponsesOperationFilter>();
                c.OperationFilter <ResponseCodeOperationFilter>();
            });

            // services.AddCors();
        }
 public void ValidateUsername_Success()
 {
     JwtAuthenticationService.ValidateUsername("*****@*****.**");
 }
Exemple #16
0
 public AdminController(IRepository <Admin> repository, JwtAuthenticationService authService) : base(repository)
 {
     _authService = authService;
 }
Exemple #17
0
 public AuthController(ISmsService smsService, OnlineShopContext context, JwtAuthenticationService userService)
 {
     this.smsService  = smsService;
     this.context     = context;
     this.userService = userService;
 }
 public void ValidateUsername_NoEmail()
 {
     Assert.Throws <UnprocessableEntityException>(
         () => JwtAuthenticationService.ValidateUsername("This is not a username"));
 }
 public void ValidateUser_NoUser()
 {
     Assert.Throws <UnauthorizedException>(() => JwtAuthenticationService.ValidateUser(null, "bla"));
 }