private void BrowserTypeToggled(object sender, RoutedEventArgs e) { _browserType = authTypeToggleSwitch.IsOn ? AuthenticationInterfaceEnum.Dedicated : AuthenticationInterfaceEnum.Embedded; _callbackType = authTypeToggleSwitch.IsOn ? CallbackTypeEnum.Protocol : CallbackTypeEnum.Localhost; }
/// <summary> /// Iterate between connected handlers to process request /// </summary> public static async Task <WebQueryResult> ProcessWebCallbacks(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { foreach (var method in WebModuleConnectors.Values) { try { var result = await method(query, type, ip, data); if (result.Result != WebQueryResultEnum.False) { return(result); } } catch (Exception ex) { await LogHelper.LogEx($"Module method {method.Method.Name} throws ex!", ex); } } return(WebQueryResult.False); }
public async Task <WebQueryResult> ProcessRequest(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { if (!Settings.Config.ModuleContractNotifications) { return(WebQueryResult.False); } try { RunningRequestCount++; if (!query.Contains("&state=12")) { return(WebQueryResult.False); } var prms = query.TrimStart('?').Split('&'); var code = prms[0].Split('=')[1]; var result = await WebAuthModule.GetCharacterIdFromCode(code, Settings.WebServerModule.CcpAppClientId, Settings.WebServerModule.CcpAppSecret); if (result == null) { return(WebQueryResult.EsiFailure); } var characterId = result[0]; var numericCharId = Convert.ToInt64(characterId); if (string.IsNullOrEmpty(characterId)) { await LogHelper.LogWarning("Bad or outdated feed request!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } if (!HasAuthAccess(numericCharId)) { await LogHelper.LogWarning($"Unauthorized feed request from {characterId}"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } if (WebGetAuthGroup(numericCharId, out _) == null) { await LogHelper.LogWarning("Feed auth group not found!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } //var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); await SQLHelper.InsertOrUpdateTokens("", characterId, "", result[1]); await LogHelper.LogInfo($"Mail feed added for character: {characterId}", LogCat.AuthWeb); var res = WebQueryResult.ContractsAuthSuccess; res.Message1 = LM.Get("mailAuthSuccessHeader"); res.Message2 = LM.Get("mailAuthSuccessBody"); res.AddValue("url", ServerPaths.GetFeedSuccessUrl()); return(res); } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } return(WebQueryResult.False); }
private async Task <WebQueryResult> ProcessAuth(string query, CallbackTypeEnum callbackType, string inputIp, WebAuthUserData webUserData) { if (!Settings.Config.ModuleTimers || webUserData.Id == 0 || string.IsNullOrEmpty(webUserData.Name)) { return(WebQueryResult.False); } return(WebQueryResult.False); try { RunningRequestCount++; var port = Settings.WebServerModule.WebExternalPort; /* if (request.Url.LocalPath == "/timers" || request.Url.LocalPath == $"{extPort}/timers" || * request.Url.LocalPath == $"{port}/timers") * { * if (string.IsNullOrWhiteSpace(request.Url.Query)) * { * //redirect to auth * await response.RedirectAsync(new Uri(WebServerModule.GetTimersAuthURL())); * return true; * } * * var prms = request.Url.Query.TrimStart('?').Split('&'); * if (prms.Length != 3) * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * var data = prms[0].Split('=')[1]; * var inputId = prms[1].Split('=')[1]; * var state = prms[2].Split('=')[1]; * if (state != "11") * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * var characterId = * Convert.ToInt64( * Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(inputId)))); * * var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); * if (rChar == null) * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * //have charId - had to check it * //check in db * var timeout = Settings.TimersModule.AuthTimeoutInMinutes; * if (timeout != 0) * { * var result = await SQLHelper.GetTimersAuthTime(characterId); * if (result == null || (DateTime.Now - DateTime.Parse(result)).TotalMinutes > timeout) * { * //redirect to auth * await response.RedirectAsync(new Uri(WebServerModule.GetTimersAuthURL())); * return true; * } * } * * var checkResult = await CheckAccess(characterId, rChar); * if (!checkResult[0]) * { * await WebServerModule.WriteResponce( * WebServerModule.GetAccessDeniedPage("Timers Module", LM.Get("accessDenied"), * WebServerModule.GetWebSiteUrl()), response); * return true; * } * * if (checkResult[1] && data.StartsWith("delete")) * { * data = data.Substring(6, data.Length - 6); * await SQLHelper.DeleteTimer(Convert.ToInt64(data)); * var x = HttpUtility.ParseQueryString(request.Url.Query); * x.Set("data", "0"); * await response.RedirectAsync(new Uri($"{request.Url.ToString().Split('?')[0]}?{x}")); * return true; * } * * await WriteCorrectResponce(response, checkResult[1], characterId); * return true; * } * * var prms = request.Url.Query.TrimStart('?').Split('&'); * if (prms.Length != 3) * { * //await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var inputId = prms[1].Split('=')[1]; * var state = prms[2].Split('=')[1]; * if (state != "11") * { * // await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var characterId = * Convert.ToInt64( * Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(inputId)))); * * var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); * if (rChar == null) * { * // await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var checkResult = await CheckAccess(characterId, rChar); * if (!checkResult[0]) * return true; * * var data = await request.ReadContentAsStringAsync(); * * if (checkResult[1] && data != null) * { * if (data.StartsWith("delete")) * { * data = data.Substring(6, data.Length - 6); * await SQLHelper.DeleteTimer(Convert.ToInt64(data)); * } * else * { * TimerItem entry = null; * try * { * entry = JsonConvert.DeserializeObject<TimerItem>(data); * } * catch * { * //ignore * } * * if (entry == null) * { * await response.WriteContentAsync(LM.Get("invalidInputData")); * return true; * } * * var iDate = entry.GetDateTime(); * if (iDate == null) * { * await response.WriteContentAsync(LM.Get("invalidTimeFormat")); * return true; * } * * if (iDate < DateTime.Now) * { * await response.WriteContentAsync(LM.Get("passedTimeValue")); * return true; * } * * //save * entry.timerChar = rChar.name; * await SQLHelper.UpdateTimer(entry); * } * * return true; * }*/ } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } }
public async Task <WebQueryResult> ProcessRequest(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { if (!Settings.Config.ModuleNotificationFeed) { return(WebQueryResult.False); } try { RunningRequestCount++; if (query.Contains("&state=9")) { //var prms = QueryHelpers.ParseQuery(query); var prms = query.TrimStart('?').Split('&'); var code = prms[0].Split('=')[1]; var result = await WebAuthModule.GetCharacterIdFromCode(code, Settings.WebServerModule.CcpAppClientId, Settings.WebServerModule.CcpAppSecret); if (result == null) { return(WebQueryResult.EsiFailure); } var characterId = result[0]; var numericCharId = Convert.ToInt64(characterId); if (string.IsNullOrEmpty(characterId)) { await LogHelper.LogWarning("Bad or outdated notify feed request!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("authTokenBodyFail"); r.Message2 = LM.Get("authTokenBadRequest"); return(r); } if (!TickManager.GetModule <NotificationModule>().IsValidCharacter(numericCharId)) { await LogHelper.LogWarning($"Unauthorized notify feed request from {characterId}"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("authTokenBodyFail"); return(r); } var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); await SQLHelper.InsertOrUpdateTokens(result[1] ?? "", characterId, null, ""); await LogHelper.LogInfo($"Notification feed added for character: {characterId}", LogCat.AuthWeb); var res = WebQueryResult.GeneralAuthSuccess; res.Message1 = LM.Get("authTokenRcv"); res.Message2 = LM.Get("authTokenRcv2", rChar.name); return(res); } } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } return(WebQueryResult.False); }
public static async Task <WebQueryResult> ProcessCallback(string queryStringValue, CallbackTypeEnum type, string ip, WebAuthUserData data) { return(await WebServerModule.ProcessWebCallbacks(queryStringValue, type, ip, data)); }
public override void ViewDidLoad() { base.ViewDidLoad(); var settings = new CredentialApplicationSettings(); BrowserToggle.TouchUpInside += (sender, args) => { _browserType = BrowserToggle.On ? AuthenticationInterfaceEnum.Embedded : AuthenticationInterfaceEnum.Dedicated; _callbackType = BrowserToggle.On ? CallbackTypeEnum.Localhost : CallbackTypeEnum.Protocol; }; FacebookAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Facebook, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Facebook>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <FacebookEvent>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; TwitterAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Twitter, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Twitter>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("OAuth Secret: " + token.OAuthSecret + "\nOAuth Token: " + token.OAuthToken); }; FatsecretAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Fatsecret, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Fatsecret>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("OAuth Secret: " + token.OAuthSecret + "\nOAuth Token: " + token.OAuthToken); }; WithingsAuth.TouchUpInside += async(sender, args) => { var credentials = settings .GetClientCredentials <Withings, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Withings>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("OAuth Secret: " + token.OAuthSecret + "\nOAuth Token: " + token.OAuthToken); }; SpotifyAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Spotify, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Spotify>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <SpotifySavedTrack>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; GoogleAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Google, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Google>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <GoogleGmailMetadata>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; FitbitAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Fitbit, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Fitbit>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <FitbitProfile>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; RunkeeperAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Runkeeper, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Runkeeper>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <RunkeeperFitnessActivity>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; FoursquareAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Foursquare, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Foursquare>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; RescuetimeAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <Rescuetime, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Rescuetime>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <RescuetimeAnalyticData>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; LinkedinAuth.TouchUpInside += async(sender, e) => { var credentials = settings .GetClientCredentials <LinkedIn, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <LinkedIn>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <LinkedinPersonal>() .GetCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Access Token:" + token.AccessToken); }; MioAuth.TouchUpInside += async(sender, args) => { var auth = new BluetoothApp <Mioalpha>(); var credentials = await auth.GetBluetoothCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Device Address: " + credentials.DeviceAddress); var requester = new BluetoothRequester(); var result = await requester .MakeBluetoothRequestAsync <MioHeartRate>(credentials) .ConfigureAwait(false); WriteResultToTextView("Heart rate: " + result.Reading); }; GPS.TouchUpInside += async(sender, args) => { var result = await new GPSRequester() .MakeGPSRequestAsync() .ConfigureAwait(false); WriteResultToTextView($"Latitude: {result.Latitude}, Longitude: {result.Longitude}, Speed: {result.Speed}"); }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); var settings = new CredentialApplicationSettings(); SetContentView(Resource.Layout.Main); var toggleButton = FindViewById <ToggleButton>(Resource.Id.browserToggleButton); toggleButton.Click += (o, e) => { _browserType = toggleButton.Checked ? AuthenticationInterfaceEnum.Dedicated : AuthenticationInterfaceEnum.Embedded; _callbackType = toggleButton.Checked ? CallbackTypeEnum.Protocol : CallbackTypeEnum.Localhost; }; FindViewById <Button>(Resource.Id.facebookAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Facebook, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Facebook>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <FacebookEvent>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.twitterAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Twitter, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Twitter>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.fatsecretAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Fatsecret, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Fatsecret>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.withings).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Withings, OAuth1Credentials>(_callbackType); var token = await new OAuth1App <Withings>( credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.fitbitAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Fitbit, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Fitbit>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <FitbitProfile>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.foursquareAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Foursquare, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Foursquare>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.googleAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Google, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Google>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <GoogleGmailMetadata>() .AddScope <GoogleGmail>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.linkedinAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <LinkedIn, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <LinkedIn>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <LinkedinPersonal>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.rescuetimeAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Rescuetime, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Rescuetime>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <RescuetimeAnalyticData>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.spotifyAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Spotify, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Spotify>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <SpotifySavedTrack>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.runkeeperAuth).Click += async(sender, args) => { var credentials = settings .GetClientCredentials <Runkeeper, OAuth2Credentials>(_callbackType); var token = await new OAuth2App <Runkeeper>( credentials.ClientId, credentials.ClientSecret, credentials.CallbackUrl, browserType: _browserType) .AddScope <RunkeeperFitnessActivity>() .GetCredentialsAsync() .ConfigureAwait(false); WriteCredentials(token); }; FindViewById <Button>(Resource.Id.mioalphaAuth).Click += async(sender, args) => { var credentials = await new BluetoothApp <Mioalpha>() .GetBluetoothCredentialsAsync() .ConfigureAwait(false); WriteResultToTextView("Device Address: " + credentials.DeviceAddress); var result = await new BluetoothRequester() .MakeBluetoothRequestAsync <MioHeartRate>(credentials) .ConfigureAwait(false); WriteResultToTextView("Heart rate: " + result.Reading); }; FindViewById <Button>(Resource.Id.gps).Click += async(sender, args) => { var result = await new GPSRequester() .MakeGPSRequestAsync() .ConfigureAwait(false); WriteResultToTextView( $"Latitude: {result.Latitude}, Longitude: {result.Longitude}, Speed: {result.Speed}"); }; FindViewById <Button>(Resource.Id.sms).Click += async(sender, args) => { var filterDate = new DateTime(2016, 7, 21, 0, 0, 0); var results = await new SMSRequester() .MakeSMSRequestAsync(filterDate) .ConfigureAwait(false); var resultsString = string.Empty; foreach (var result in results) { resultsString += $"Address: {result.Address}, Header: {result.Subject}, Body: {result.Body}\n"; } WriteResultToTextView(resultsString); }; }
/// <summary> /// Construtor da classe setando o callback default (Inativo). /// </summary> public Message() { this.Callback = CallbackTypeEnum.INACTIVE; }