예제 #1
0
    public static BearerToken GetBearerToken()
    {
        BearerToken token         = null;
        var         jsonToken     = $"grant_type=password&database={CONFIG.DATABASE}&username={CONFIG.USERNAME}&password={CONFIG.PASSWORD}&keys={CONFIG.KEYS}";
        var         requestBearer = (HttpWebRequest)WebRequest.Create($"{CONFIG.ADDRESS}/API/Bearer");

        requestBearer.ContentType   = "application/x-www-form-urlencoded";
        requestBearer.ContentLength = jsonToken.Length;
        requestBearer.Timeout       = 10000;
        requestBearer.Method        = "POST";

        using (var writer = new StreamWriter(requestBearer.GetRequestStream()))
        {
            writer.Write(jsonToken);
            writer.Flush();
            writer.Close();
        }

        using (var response = (HttpWebResponse)requestBearer.GetResponse())
        {
            using (var reader = new StreamReader(response.GetResponseStream()))
            {
                var data = reader.ReadToEnd();
                response.Close();
                reader.Close();
                token = JsonConvert.DeserializeObject <BearerToken>(data);
            }
        }

        return(token);
    }
예제 #2
0
        public async Task <IActionResult> Register([FromBody] RegisterUserData registerUserData)
        {
            var newUser = Mapper.Map <User>(registerUserData);

            newUser.Password = EncyptionProvider.HashPassword(newUser.Password);
            var repositoryResponse = await Repository.RegisterUser(newUser);

            if (!repositoryResponse.Successful)
            {
                if (repositoryResponse.RepositoryResponseMessage == RepositoryResponse <User> .RepositoryResponseMessageEnum.EmailIndexException)
                {
                    return(new BadRequestObjectResult(AuthControllerErrorCodes.EmailUsedError));
                }
                if (repositoryResponse.RepositoryResponseMessage == RepositoryResponse <User> .RepositoryResponseMessageEnum.UserIndexException)
                {
                    return(new BadRequestObjectResult(AuthControllerErrorCodes.LoginUsedError));
                }
                if (repositoryResponse.RepositoryResponseMessage == RepositoryResponse <User> .RepositoryResponseMessageEnum.UserIndexAndEmailIndexException)
                {
                    return(new BadRequestObjectResult(AuthControllerErrorCodes.LoginAndEmailUsedError));
                }
                return(new BadRequestResult());
            }

            BearerToken bearerToken = EncyptionProvider.CreateBearerToken(Mapper.Map <BearerToken>(repositoryResponse.Value));

            return(new JsonResult(bearerToken));
        }
예제 #3
0
        private BearerToken GetToken()
        {
            const string url          = "GetUserToken";
            var          client       = new HttpClient();
            var          currentToken = new BearerToken();

            try
            {
                var usr = new AuthRequest
                {
                    User = UserName,
                    Pwd  = PassWord
                };
                client.BaseAddress = new Uri(WebApiUrl);
                var content  = new JsonContent(usr);
                var response = client.PostAsync(url, content).Result;
                if (response.IsSuccessStatusCode)
                {
                    currentToken = response.Data <BearerToken>();
                }
            }
            catch (Exception ex)
            {
                LogErrorMessage(client.BaseAddress + url, ex);
            }

            return(currentToken);
        }
예제 #4
0
 public void ClearToken()
 {
     lock (locker)
     {
         token = null;
     }
 }
예제 #5
0
        public Form1()
        {
            InitializeComponent();

            this.BringToFront();
            this.Focus();
            this.KeyPreview = true;

            Index           = 0; Pages = new List <Tuple <string, Status> >();
            button1.Enabled = button2.Enabled = false;

            if (BearerToken.Equals("none"))
            {
                try
                {
                    BearerToken = OAuth2.GetToken(ConsumerKey, ConsumerSecret).BearerToken;
                    Properties.Settings.Default.Save();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    Environment.Exit(1);
                }
            }
            Token = OAuth2Token.Create(ConsumerKey, ConsumerSecret, BearerToken);
            toolStripTextBox1.Focus();
        }
예제 #6
0
 /// <summary>
 /// This method validates if the parameter <paramref name="token" /> is valid and can be used.
 /// </summary>
 /// <returns>
 /// True if valid and false otherwise
 /// </returns>
 /// <param name="token"> A token class of type BearerToken to be validated</param>
 /// <seealso cref="BearerToken"/>
 public static bool IsValidToken(BearerToken token)
 {
     // Adding 2 seconds guard to ensure the request is done before the expiry time has reached
     return(token != null &&
            !string.IsNullOrEmpty(token.AccessToken) &&
            token.ExpirationDate > DateTime.UtcNow.AddSeconds(2));
 }
예제 #7
0
        public async Task <string> GetAuthToken(string username, string password)
        {
            AuthRequest requestBody = new AuthRequest
            {
                Username = username,
                Password = password
            };
            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri(APIConstants.AUTHURL),
                Content    = new StringContent(JsonConvertService.SerializeToJson(requestBody), Encoding.UTF8, "application/json")
            };

            httpClient.ApiClient.DefaultRequestHeaders.Clear();
            using (HttpResponseMessage response = await httpClient.ApiClient.SendAsync(request))
            {
                if (response.IsSuccessStatusCode)
                {
                    BearerToken token = Newtonsoft.Json.JsonConvert.DeserializeObject <BearerToken>(response.Content.ReadAsStringAsync().Result);
                    return(token.Token);
                }
                else
                {
                    throw new HttpRequestException();
                }
            }
        }
        protected override void Execute(CodeActivityContext context)
        {
            var projectID   = ProjectID.Get(context);
            var modelID     = ModelID.Get(context);
            var locationID  = LocationID.Get(context);
            var bearerToken = BearerToken.Get(context);
            var content     = Content.Get(context);

            var jsonData      = String.Format("{ \"payload\": { \"textSnippet\": { \"content\": \"{0}\", \"mime_type\": \"text/plain\" } } }", content);
            var jsonDataBytes = Encoding.ASCII.GetBytes(jsonData);

            request = HttpWebRequest.CreateHttp(String.Format("https://automl.googleapis.com/v1/projects/{0}/locations/{1}/models/{2}:predict",
                                                              projectID, locationID, modelID));
            request.Method      = "POST";
            request.ContentType = "application/json";
            request.Headers.Add(HttpRequestHeader.Authorization, $"Bearer {bearerToken}");

            using (var req_stream = request.GetRequestStream())
            {
                req_stream.Write(jsonDataBytes, 0, jsonDataBytes.Length);
                req_stream.Close();
            }

            var response = request.GetResponse();
        }
예제 #9
0
        public async Task <IResponseResult <User> > WhoAmIAsync(BearerToken bearerToken)
        {
            var url     = $"{this.AuthApiBaseUrl}/whoami";
            var headers = HeaderCollection.Add("Authorization", bearerToken.ToString());

            return(await this.ExecuteRequestAsync <User>(HttpMethod.Get, url, null, headers));
        }
예제 #10
0
 public CallOptions ApplyCustomOptions(CallOptions custom)
 {
     if (custom is null)
     {
         return(this);
     }
     if (custom.Version != null)
     {
         Version = custom.Version;
     }
     Ttl   = custom.Ttl;
     Epoch = custom.Epoch;
     if (custom.XHeaders != null)
     {
         XHeaders = custom.XHeaders;
     }
     if (custom.Session != null)
     {
         Session = custom.Session;
     }
     if (custom.Bearer != null)
     {
         Bearer = custom.Bearer;
     }
     return(this);
 }
예제 #11
0
        public async Task <AuthorizationResult> Authorize(string login, string password)
        {
            var user = await _dataProvider.Get <UserDb>()
                       .Where(x =>
                              x.NormalLogin == login.ToLower() &&
                              x.Password == PostgresEfExtensions.Crypt(password, x.Password)
                              )
                       .Select(x => new
            {
                x.Id,
                Name     = x.Login,
                ImageUrl = x.Profile.AvatarUrl,
            })
                       .SingleOrDefaultAsync(Context.CancellationToken);

            if (user == null)
            {
                _logger.LogWarning("Не верный логин и/или пароль");
                throw new RemoteException("Не верный логин и/или пароль");
            }

            // Авторизовываем текущее подключение.
            BearerToken bearerToken = Context.Authorize(userId: user.Id);

            _logger.LogInformation($"Авторизован пользователь: \"{login}\"");

            return(new AuthorizationResult
            {
                BearerToken = bearerToken,
                UserId = user.Id,
                UserName = user.Name,
                ImageUrl = new Uri(user.ImageUrl)
            });
        }
예제 #12
0
        //TODO check token
        /// <summary>
        /// Get token using blizzard login credentials => authorization code
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public async Task <BearerToken> GetTokenWithAuthenticationCode(string code)
        {
            string path      = "oauth/token";
            var    authToken = Encoding.ASCII.GetBytes($"{ConfigurationManager.AppSettings["client_id"]}:{ConfigurationManager.AppSettings["client_secret"]}");
            AuthenticationHeaderValue             authHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authToken));
            List <KeyValuePair <string, string> > content    = new List <KeyValuePair <string, string> >();

            content.Add(new KeyValuePair <string, string>("grant_type", "authorization_code"));
            content.Add(new KeyValuePair <string, string>("scope", "wow.profile openid"));
            content.Add(new KeyValuePair <string, string>("redirect_uri", "https://localhost:44380/Account/Authorize"));
            content.Add(new KeyValuePair <string, string>("code", code));
            content.Add(new KeyValuePair <string, string>("region", "eu"));

            try
            {
                string response = await SendPost(true, path, content, authHeader);

                BearerToken token = JsonConvert.DeserializeObject <BearerToken>(response);
                token.SetExpirationDate();
                instance.token = token;
                return(token);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(null);
        }
예제 #13
0
        public IHttpActionResult Index(LoginModel model)
        {
            try
            {
                MusicianBusiness musicianBusiness = new MusicianBusiness();

                Musician user = musicianBusiness.Login(model.email, model.password);

                if (user == null)
                {
                    return(Unauthorized());
                }

                BearerToken bearerLogin = new BearerToken(new BearerDatabaseManager(model.email));
                bearerLogin.GenerateHeaderToken(user.id.ToString(), user.email);

                return(Ok(user));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.StackTrace));

                return(InternalServerError(ex));
            }
        }
예제 #14
0
        private void PopulateDefaultProperties(RateContribution rateContribution)
        {
            BearerToken bearerToken = new BearerToken();
            var         activeToken = bearerToken.GetActiveToken();

            rateContribution.musician_id = int.Parse(activeToken.client);
        }
        public void AgregarDireccion(BearerToken token)
        {
            Direccion nuevaDireccion = new Direccion()
            {
                IdTienda          = 24,
                NomDirCte         = "La oficina prueba",
                IdTipoDomCte      = 1,
                NomRecibeCte      = "Jesús",
                IdEstadoCte       = 19,
                NomCiudadCte      = "Monterrey",
                NomColoniaCte     = "Cumbres",
                NomCalleCte       = "Sector 8",
                NumExtCalleCte    = 1913,
                NumIntCalleCteOpc = 1913,
                CpCte             = 64610,
                TelefonoCte       = "8711182334"
            };

            direccion = nuevaDireccion;

            string controlador = "/api/direccion/New";
            string endpoint    = urlbase + controlador;

            var client = new RestClient(endpoint);

            client.Timeout = -1;
            var request = new RestRequest(Method.POST);

            request.AddHeader("bearertoken", token.AccessToken);
            request.AddHeader("Content-Type", "application/json");
            request.AddParameter("application/json", nuevaDireccion.ToJson(), ParameterType.RequestBody);

            IRestResponse response = client.Execute(request);
        }
예제 #16
0
        public async Task <IResponseResult <BearerToken> > RefreshTokenAsync(BearerToken bearerToken)
        {
            var url     = $"{this.AuthApiBaseUrl}/refresh-token";
            var headers = HeaderCollection.Add("Authorization", bearerToken.RefreshToken);

            return(await this.ExecuteRequestAsync <BearerToken>(HttpMethod.Get, url, null, headers));
        }
예제 #17
0
        public IResponseResult RevokeToken(BearerToken token)
        {
            var url     = $"{this.AuthApiBaseUrl}/revoke-token";
            var headers = HeaderCollection.Add("Authorization", token.ToString());

            return(this.ExecuteRequest <BearerToken>(HttpMethod.Get, url, null, headers));
        }
예제 #18
0
        public static async Task <string> GetRefreshToken(string RefreshToken)
        {
            using (var httpClient = new HttpClient())
            {
                Uri Endpoint = new Uri($"{AppSetting.ApiEndpoint}Token");

                var tokenRequest =
                    new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("grant_type", "refresh_token"),
                    new KeyValuePair <string, string>("refresh_token", RefreshToken)
                };

                HttpContent encodedRequest = new FormUrlEncodedContent(tokenRequest);

                HttpResponseMessage response = await httpClient.PostAsync(Endpoint, encodedRequest);

                if (response != null && response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    string jsonResponse = response.Content.ReadAsStringAsync().Result;

                    SetToken(jsonResponse);

                    BearerToken token = JsonConvert.DeserializeObject <BearerToken>(jsonResponse);

                    return(token.AccessToken);
                }
                else
                {
                    //Se arrivo qui allora email e password sono sbagliati.
                    throw new ApplicationException("Password o Email errati.");
                }
            }
        }
예제 #19
0
        public async Task <string> GetAccessToken()
        {
            if (token == null || token.IsExpired())
            {
                lock (locker)
                {
                    if (token != null && !token.IsExpired())
                    {
                        return(token.access_token);
                    }

                    Dictionary <String, string> dic = new Dictionary <string, string>()
                    {
                        { "grant_type", "client_credentials" },
                        { "client_id", clientId },
                        { "client_secret", clientSecret }
                    };
                    BearerToken bt = restClient.SubmitForm <BearerToken>(_url, dic).Result;
                    if (bt != null && !String.IsNullOrEmpty(bt.access_token))
                    {
                        bt.LastGetTime = DateTime.UtcNow;
                        //Logger.Info("获取Access Token:{0}\r\n{1}", clientId, bt.access_token);
                    }
                    token = bt;
                }
            }
            return(token?.access_token);
        }
예제 #20
0
        private async Task <string> GetAzureRateCard(BearerToken bears, string subscriptionId, string offerCode, string currency, string locale, string region)
        {
            string rateCardApiVersion = "2015-06-01-preview";
            string rateCardUrl        = $@"https://management.azure.com//subscriptions//{subscriptionId}//providers//Microsoft.Commerce//RateCard?api-version={rateCardApiVersion}&$filter=OfferDurableId eq '{offerCode}' and Currency eq '{currency}' and Locale eq '{locale}' and RegionInfo eq '{region}'";

            HttpResponseMessage response = null;
            string responseMsg           = string.Empty;

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("Authorization", bears.BearerTokenHeader);
                try
                {
                    response = await client.GetAsync(rateCardUrl);

                    if (response.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        responseMsg = await response.Content.ReadAsStringAsync();
                    }
                }
                catch (HttpRequestException ex)
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                }
                catch (Exception ex2)
                {
                    //TODO: Show a meessage
                }
            }
            return(responseMsg);
        }
예제 #21
0
        public void AccessTokenRefreshTest()
        {
            var request = new Mock <HttpWebRequest>();

            request.Setup(obj => obj.RequestUri).Returns(new Uri("https://demo.eduvpn.nl/portal/oauth.php/token"));
            request.SetupSet(obj => obj.Method = "POST");
            request.SetupProperty(obj => obj.Credentials);
            request.SetupProperty(obj => obj.PreAuthenticate, false);
            request.SetupSet(obj => obj.ContentType = "application/x-www-form-urlencoded");
            request.SetupProperty(obj => obj.ContentLength);
            var request_buffer = new byte[1048576];

            request.Setup(obj => obj.GetRequestStream()).Returns(new MemoryStream(request_buffer, true));
            var response = new Mock <HttpWebResponse>();

            response.Setup(obj => obj.GetResponseStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes(Global.AccessTokenJSON)));
            response.SetupGet(obj => obj.StatusCode).Returns(HttpStatusCode.OK);
            request.Setup(obj => obj.GetResponse()).Returns(response.Object);

            AccessToken
                token1        = new BearerToken(Global.AccessTokenObj, DateTimeOffset.Now),
                token2        = token1.RefreshToken(request.Object, new NetworkCredential("username", "password"));
            var request_param = HttpUtility.ParseQueryString(Encoding.ASCII.GetString(request_buffer, 0, (int)request.Object.ContentLength));

            Assert.AreEqual("refresh_token", request_param["grant_type"]);
            Assert.IsNotNull(request_param["refresh_token"]);
            Assert.IsTrue((token1.Scope == null) == (request_param["scope"] == null));
            Assert.IsTrue(token1.Scope == null || token1.Scope.SetEquals(new HashSet <string>(request_param["scope"].Split(null))));
            Assert.AreEqual(token1, token2);
            Assert.IsTrue(token1.Authorized == token2.Authorized);
            Assert.IsTrue((token1.Expires - token2.Expires).TotalSeconds < 60);
            Assert.IsTrue((token1.Scope == null) == (token2.Scope == null));
            Assert.IsTrue(token1.Scope == null || token1.Scope.SetEquals(token2.Scope));
        }
예제 #22
0
        public IResponseResult <User> WhoAmI(BearerToken bearerToken)
        {
            var url     = $"{this.BaseUrl}/whoami";
            var headers = HeaderCollection.Add("Authorization", bearerToken.ToString());

            return(this.ExecuteRequest <User>(HttpMethod.Get, url, null, headers));
        }
        public async Task Token_Ok()
        {
            //Arrage
            var token = new BearerToken()
            {
                Access_token = "1234token",
                User_email   = "*****@*****.**"
            };

            var claims = new[] {
                new Claim(ClaimsIdentity.DefaultNameClaimType, "*****@*****.**")
            };

            var identity = new ClaimsIdentity(claims, "Token", ClaimsIdentity.DefaultNameClaimType, null);

            authService.Setup(x => x.GetIdentityAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(identity));

            authService.Setup(x => x.GetBearerToken(identity))
            .Returns(token);

            //Act
            var action = await controller.Token(new UserLoginPostModel { Password = "******", Email = "*****@*****.**" });

            //Assert
            var result = Assert.IsType <OkObjectResult>(action);

            Assert.Equal(token.Access_token, "1234token");
        }
예제 #24
0
        public async Task <IResponseResult <BearerToken> > VerifyTokenAsync(BearerToken token)
        {
            var url     = $"{this.AuthApiBaseUrl}/verify-token";
            var headers = HeaderCollection.Add("Authorization", token.ToString());

            return(await this.ExecuteRequestAsync <BearerToken>(HttpMethod.Get, url, null, headers));
        }
예제 #25
0
        public async Task <IResponseResult> RevokeTokenAsync(BearerToken token, bool logoutFromAllDevices = false)
        {
            var url         = $"{this.BaseUrl}/revoke-token";
            var headers     = HeaderCollection.Add("Authorization", token.ToString());
            var queryString = logoutFromAllDevices ? QueryString.Add("logout-all", true) : QueryString.Empty;

            return(await this.ExecuteRequestAsync(HttpMethod.Get, url, queryString, headers));
        }
예제 #26
0
        public IResponseResult <BearerToken> RefreshToken(BearerToken bearerToken)
        {
            var url      = $"{this.BaseUrl}/refresh-token";
            var headers  = HeaderCollection.Add("Authorization", bearerToken.RefreshToken);
            var response = this.ExecuteRequest(HttpMethod.Get, url, null, headers);

            return(ConvertToBearerTokenResponse(response));
        }
예제 #27
0
        public static void TestBearerTokenV3(Scope scope, string expectedToken)
        {
            TestScope(scope, ScopeTypes.BearerToken);
            Assert.True(scope is BearerToken);
            BearerToken token = scope as BearerToken;

            Assert.Equal(expectedToken, token.Token);
        }
예제 #28
0
 public TokenBundle
 (
     BearerToken bearerToken,
     RefreshToken refreshToken
 )
 {
     BearerToken  = bearerToken;
     RefreshToken = refreshToken;
 }
예제 #29
0
    public static int GetLoggedUserId()
    {
        BearerToken bearerToken = new BearerToken(new BearerDatabaseManager());
        var         activeToken = bearerToken.GetActiveToken();

        var retorno = int.Parse(activeToken.client);

        return(retorno);
    }
예제 #30
0
        public void BearerTokenSerialization()
        {
            BearerToken constScope = JsonConvert.DeserializeObject <Scope>(BEARERTOKEN) as BearerToken;
            BearerToken scope      = new BearerToken("access-token-from-Amazon");

            //Context check
            Assert.Equal(constScope.Type, scope.Type);
            Assert.Equal(constScope.Token, scope.Token);
        }