Ejemplo n.º 1
0
        public void EnsureControllerPostMethodCallsPostTokenUseCase()
        {
            var response = new GenerateTokenResponse();

            _mockPostTokenUseCase.Setup(x => x.Execute(It.IsAny <TokenRequestObject>())).Returns(response);
            _classUnderTest.GenerateToken(It.IsAny <TokenRequestObject>());

            _mockPostTokenUseCase.Verify(x => x.Execute(It.IsAny <TokenRequestObject>()), Times.Once);
        }
Ejemplo n.º 2
0
        public void ControllerPostMethodShouldReturn201StatusCode()
        {
            var response = new GenerateTokenResponse();

            _mockPostTokenUseCase.Setup(x => x.Execute(It.IsAny <TokenRequestObject>())).Returns(response);
            var result = _classUnderTest.GenerateToken(It.IsAny <TokenRequestObject>()) as CreatedAtActionResult;

            result.Should().NotBeNull();
            result.StatusCode.Should().Be(201);
        }
Ejemplo n.º 3
0
        public HttpResponseMessage Login(LoginRequest model)
        {
            CheckCredentialResponse checkResp = _router.Query <CheckCredentialRequest, CheckCredentialResponse>(new CheckCredentialRequest()
            {
                Username = model.Username,
                Password = model.Password
            });

            if (checkResp.PrincipalId != default(Guid))
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }

            if (!checkResp.Success)
            {
                _router.Push <LoginAttemptEvent>(evt =>
                {
                    evt.PrincipalId   = checkResp.PrincipalId;
                    evt.Browser       = Context.Client.UA.Family;
                    evt.System        = Context.Client.OS.Family;
                    evt.Device        = $"{Context.Client.Device.Family} {Context.Client.Device.Brand} {Context.Client.Device.Model}";
                    evt.RemoteAddress = Request.GetOwinContext().Request.RemoteIpAddress;
                });

                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }

            GenerateTokenResponse tokenResp = _router.Query <GenerateTokenRequest, GenerateTokenResponse>(new GenerateTokenRequest()
            {
                Key       = Context.ServerConfig.AuthConfig.TokenKey,
                Algorithm = Context.ServerConfig.AuthConfig.TokenAlgorithm,
                Tokens    = Context.ServerConfig.AuthConfig.TokenSpecs.Select(x => new Token()
                {
                    Type       = x.Type,
                    Expiration = Context.Clock.UtcNow.Add(x.Duration).UtcDateTime
                })
            });

            return(Request.CreateResponse(HttpStatusCode.OK, new LoginResponse()
            {
                Tokens = tokenResp.Tokens.Select(x => x.ToString())
            }));
        }
Ejemplo n.º 4
0
        public HttpResponseMessage ResetPassword([FromUri] string token, [FromBody] string password)
        {
            Token resetToken = Token.Parse(token);

            DecodeTokenResponse decodeResp = _router.Query <DecodeTokenRequest, DecodeTokenResponse>(
                new DecodeTokenRequest()
            {
                Key       = Context.ServerConfig.AuthConfig.TokenKey,
                Algorithm = Context.ServerConfig.AuthConfig.TokenAlgorithm,
                Data      = Convert.FromBase64String(resetToken.Data),
                IV        = Convert.FromBase64String(resetToken.InitValue)
            });

            if (Context.Clock.UtcNow > decodeResp.Token.Expiration)
            {
                return(Request.CreateResponse(HttpStatusCode.Unauthorized));
            }

            _router.Command(new SetPasswordCommand()
            {
                PrincipalId = resetToken.PrincipalId,
                Password    = password
            });

            GenerateTokenResponse tokenResp = _router.Query <GenerateTokenRequest, GenerateTokenResponse>(new GenerateTokenRequest()
            {
                Key       = Context.ServerConfig.AuthConfig.TokenKey,
                Algorithm = Context.ServerConfig.AuthConfig.TokenAlgorithm,
                Tokens    = Context.ServerConfig.AuthConfig.TokenSpecs.Select(x => new Token()
                {
                    Type       = x.Type,
                    Expiration = Context.Clock.UtcNow.Add(x.Duration).UtcDateTime
                })
            });

            return(Request.CreateResponse(HttpStatusCode.OK, new LoginResponse()
            {
                Tokens = tokenResp.Tokens.Select(x => x.ToString())
            }));
        }
Ejemplo n.º 5
0
 protected OauthAutenticationApiCaller(Uri apiUri, GenerateTokenResponse token)
 {
     ApiUri = apiUri;
     Token  = token;
 }
Ejemplo n.º 6
0
 public MoipAccountsApi(Uri apiUri, GenerateTokenResponse token) : base(apiUri, token)
 {
 }