public void Constructor_ShouldAllowGeofencesAndDeviceIntegrity() { var policy = new AuthPolicy(null, null, null, null, true, new List <AuthPolicy.Location> { new AuthPolicy.Location { Latitude = 13.37, Longitude = 44.44, Radius = 10 } } ); Assert.IsTrue(policy.Factors != null); Assert.IsTrue(policy.Factors.Count == 2); var deviceFactor = policy.Factors.Single(f => f.Factor == AuthPolicy.FactorType.DeviceIntegrity); var geoFactor = policy.Factors.Single(f => f.Factor == AuthPolicy.FactorType.Geofence); Assert.IsTrue(geoFactor.Factor == AuthPolicy.FactorType.Geofence); Assert.IsTrue(geoFactor.Priority == 1); Assert.IsTrue(geoFactor.Requirement == AuthPolicy.FactorRequirementType.ForcedRequirement); Assert.IsTrue(geoFactor.Attributes != null); Assert.IsTrue(geoFactor.Attributes.Locations != null); Assert.IsTrue(Math.Abs(geoFactor.Attributes.Locations[0].Latitude - 13.37) < 0.01); Assert.IsTrue(Math.Abs(geoFactor.Attributes.Locations[0].Longitude - 44.44) < 0.01); Assert.IsTrue(Math.Abs(geoFactor.Attributes.Locations[0].Radius - 10) < 0.01); Assert.IsTrue(deviceFactor.Factor == AuthPolicy.FactorType.DeviceIntegrity); Assert.IsTrue(deviceFactor.Requirement == AuthPolicy.FactorRequirementType.ForcedRequirement); }
public void Authorize(string userId, string context, AuthPolicy authPolicy) { var authRequest = GetServiceClientForCurrentService() .CreateAuthorizationRequest(userId, context, authPolicy); _lastAuthorizationRequest = authRequest; }
public static void RSClientPutFileWithCRC32() { Console.WriteLine("\n===> RSClientPutFileWithCRC32 Generate CRC32"); UInt32 crc = CRC32.CheckSumFile(localFile); Console.WriteLine("CRC32: " + crc.ToString()); Console.WriteLine("\n===> RSClientPutFileWithCRC32 Generate UpToken"); var authPolicy = new AuthPolicy(bucketName, 3600); string upToken = authPolicy.MakeAuthTokenString(); Console.WriteLine("upToken: " + upToken); Console.WriteLine("\n===> RSClient.PutFileWithUpToken(CRC32)"); PutFileRet putFileRet = RSClient.PutFileWithUpToken(upToken, bucketName, key, null, localFile, null, "key=<key>", crc); PrintRet(putFileRet); if (putFileRet.OK) { Console.WriteLine("Hash: " + putFileRet.Hash); } else { Console.WriteLine("Failed to RSClient.PutFileWithUpToken(CRC32)"); } }
public void Constructor_ShouldIncludeAny() { var policy = new AuthPolicy(99, null, null, null, null, null); Assert.IsTrue(policy.MinimumRequirements != null); Assert.IsTrue(policy.MinimumRequirements.Count == 1); Assert.IsTrue(policy.MinimumRequirements[0].Any == 99); }
private void SetAuthenticationScheme(string type) { _method.getHostAuthState().setAuthScheme(AuthPolicy.getAuthScheme(type)); if (type != null && type.ToLower() == AuthPolicy.NEGOTIATE.ToLower()) { _method.getParams().setParameter(CredentialsProvider__Finals.PROVIDER, new HTTPClientCredentialsBridge(DefaultCredentialsProvider)); _method.getParams().setParameter(NegotiateScheme.SPN_LIST_PARAM, SPNProviders); } }
public void Constructor_ShouldIncludeFlags() { var policy = new AuthPolicy(null, null, true, null, null, null); Assert.IsTrue(policy.MinimumRequirements[0].Inherence == 1); Assert.IsTrue(policy.MinimumRequirements[0].Possession == null); Assert.IsTrue(policy.MinimumRequirements[0].Knowledge == null); Assert.IsTrue(!policy.MinimumRequirements[0].Any.HasValue); }
public LoadBalancingOfflineTests(string schemeName, AuthPolicy authPolicy) : base(new OfflineConnectPolicy(GetAuthScheme(schemeName)), authPolicy) { if (schemeName == "TokenAuthNoUserIds") { this.Player1 = null; this.Player2 = null; this.Player3 = null; } }
public LoadbalancingOnlineTests(string schemeName, AuthPolicy authPolicy, ConnectionProtocol protocol) : base(new OnlineConnectPolicy(GetAuthScheme(schemeName), protocol), AuthPolicy.AuthOnNameServer) { if (schemeName == "TokenAuthNoUserIds") { this.Player1 = null; this.Player2 = null; this.Player3 = null; } }
public void Serialization_MapperMapsNoMinimumRequirementsAndNoFactorsWhenNoneAreSpecified() { var expected = "{" + "\"minimum_requirements\":[]," + "\"factors\":[]" + "}"; var policy = new AuthPolicy(null, null, null, null, null, null, null); var actual = new JsonNetJsonEncoder().EncodeObject(policy); Assert.AreEqual(expected, actual); }
public void Serialization_ObjectParsesMinimumRequirementsAllOnlyWhenOnlySpecified() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2" + "}]," + "\"factors\":[]" + "}"; var expected = new AuthPolicy(2, null, null, null, null, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
private AuthPolicy generatePolicy(string principalId, string effect, string resource) { AuthPolicy authResponse = new AuthPolicy(); authResponse.policyDocument = new PolicyDocument(); authResponse.policyDocument.Version = "2012-10-17"; // default version authResponse.policyDocument.Statement = new Statement[1]; Statement statementOne = new Statement(); statementOne.Action = "execute-api:Invoke"; // default action statementOne.Effect = effect; statementOne.Resource = resource; authResponse.policyDocument.Statement[0] = statementOne; return(authResponse); }
public void Constructor_ShouldSetProperties() { var authPolicy = new AuthPolicy(null, null, null, null, null, null); var o = new ServiceV3AuthsPostRequest("un", authPolicy, "ctx", "title", 999, "Push Title", "Push Body", new List <DenialReason> { new DenialReason("1", "a", true) }); Assert.AreSame(o.AuthPolicy, authPolicy); Assert.AreEqual(o.Context, "ctx"); Assert.AreEqual(o.Username, "un"); Assert.AreEqual(o.Title, "title"); Assert.AreEqual(o.TTL, 999); Assert.AreEqual(o.PushTitle, "Push Title"); Assert.AreEqual(o.PushBody, "Push Body"); Assert.AreEqual(o.DenialReasons[0], new DenialReason("1", "a", true)); }
public void Constructor_ShouldCreateTimeFences() { var timeFence = new AuthPolicy.TimeFence("fence", new List <string> { }, 1, 5, 0, 0, "America/New York"); var timeFences = new List <AuthPolicy.TimeFence> { timeFence }; var policy = new AuthPolicy(null, null, null, null, null, null, timeFences); Assert.IsTrue(policy.Factors.Count == 1); Assert.IsTrue(policy.Factors[0].Factor == AuthPolicy.FactorType.TimeFence); Assert.IsTrue(policy.Factors[0].Priority == 1); Assert.IsTrue(policy.Factors[0].Requirement == AuthPolicy.FactorRequirementType.ForcedRequirement); Assert.AreEqual(timeFence, policy.Factors[0].Attributes.TimeFences[0]); }
public void Serialization_ObjectParsesMinimumRequirementsTypesOnlyWhenOnlySpecified() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[]" + "}"; var expected = new AuthPolicy(null, true, true, true, null, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public static void ResumablePutFile() { Console.WriteLine("\n===> ResumablePut.PutFile"); var authPolicy = new AuthPolicy(bucketName, 3600); string upToken = authPolicy.MakeAuthTokenString(); PutAuthClient client = new PutAuthClient(upToken); PutFileRet putFileRet = ResumablePut.PutFile(client, bucketName, bigkey, null, bigFile, null, "key=<key>"); PrintRet(putFileRet); if (putFileRet.OK) { Console.WriteLine("Hash: " + putFileRet.Hash); } else { Console.WriteLine("Failed to ResumablePut.PutFile"); } }
public void Constructor_ShouldIncludeDeviceIntegrityFlags() { var policy = new AuthPolicy(null, null, null, null, null, null); Assert.IsTrue(policy.Factors.Count == 0); var policyWithIntegrityFalse = new AuthPolicy(null, null, null, null, false, null); Assert.IsTrue(policyWithIntegrityFalse.Factors.Count == 1); Assert.IsTrue(policyWithIntegrityFalse.Factors[0].Factor == AuthPolicy.FactorType.DeviceIntegrity); Assert.IsTrue(policyWithIntegrityFalse.Factors[0].Attributes.FactorEnabled == 0); var policyWithIntegrityTrue = new AuthPolicy(null, null, null, null, true, null); Assert.IsTrue(policyWithIntegrityTrue.Factors.Count == 1); Assert.IsTrue(policyWithIntegrityTrue.Factors[0].Factor == AuthPolicy.FactorType.DeviceIntegrity); Assert.IsTrue(policyWithIntegrityTrue.Factors[0].Attributes.FactorEnabled == 1); }
public void Constructor_ShouldPopulateFactorBasedOnDeviceIntegrity() { var authPolicy = new AuthPolicy( null, null, null, null, true, null ); Assert.IsTrue(authPolicy.Factors != null); Assert.IsTrue(authPolicy.Factors.Count == 1); Assert.IsTrue(authPolicy.Factors[0].Factor == AuthPolicy.FactorType.DeviceIntegrity); Assert.IsTrue(authPolicy.Factors[0].Attributes.FactorEnabled == 1); Assert.IsTrue(authPolicy.Factors[0].Attributes.Locations == null); Assert.IsTrue(authPolicy.Factors[0].Requirement == AuthPolicy.FactorRequirementType.ForcedRequirement); }
public void FromTransport_Variant1() { var authPolicy = new AuthPolicy(1, null, null, null, true, new List <AuthPolicy.Location> { new AuthPolicy.Location("n", 1, 2, 3), new AuthPolicy.Location("x", 2, 4, 6) }, new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("y", new List <string> { "Monday" }, 1, 2, 3, 4, "A") }); var servicePolicy = ServicePolicy.FromTransport(authPolicy); Assert.IsTrue(servicePolicy.RequiredFactors == 1); Assert.IsTrue(servicePolicy.RequireInherenceFactor == null); Assert.IsTrue(servicePolicy.RequireKnowledgeFactor == null); Assert.IsTrue(servicePolicy.RequirePossessionFactor == null); Assert.IsTrue(servicePolicy.TimeFences.Count == 1); Assert.IsTrue(servicePolicy.TimeFences[0].Days.Count == 1); Assert.IsTrue(servicePolicy.TimeFences[0].Days[0] == DayOfWeek.Monday); Assert.IsTrue(servicePolicy.TimeFences[0].Name == "y"); Assert.IsTrue(servicePolicy.TimeFences[0].TimeZone == "A"); Assert.IsTrue(servicePolicy.TimeFences[0].StartHour == 1); Assert.IsTrue(servicePolicy.TimeFences[0].EndHour == 2); Assert.IsTrue(servicePolicy.TimeFences[0].StartMinute == 3); Assert.IsTrue(servicePolicy.TimeFences[0].EndMinute == 4); Assert.IsTrue(servicePolicy.Locations.Count == 2); Assert.IsTrue(servicePolicy.Locations[0].Name == "n"); Assert.AreEqual(servicePolicy.Locations[0].Latitude, 2, 0.01); Assert.AreEqual(servicePolicy.Locations[0].Longitude, 3, 0.01); Assert.AreEqual(servicePolicy.Locations[0].Radius, 1, 0.01); Assert.IsTrue(servicePolicy.Locations[1].Name == "x"); Assert.AreEqual(servicePolicy.Locations[1].Latitude, 4, 0.01); Assert.AreEqual(servicePolicy.Locations[1].Longitude, 6, 0.01); Assert.AreEqual(servicePolicy.Locations[1].Radius, 2, 0.01); }
public void Serialization_MapsNoMinimumRequirementsWhenNoneAreSpecified() { var expected = "{" + "\"minimum_requirements\":[]," + "\"factors\":[" + "{" + "\"factor\":\"device integrity\"," + "\"requirement\":\"forced requirement\"," + "\"attributes\":{" + "\"factor enabled\":1" + "}" + "}" + "]" + "}"; var policy = new AuthPolicy(null, null, null, null, true, null, null); var actual = new JsonNetJsonEncoder().EncodeObject(policy); Assert.AreEqual(expected, actual); }
public void Serialization_ObjectParsesNoMinimumRequirementsWhenThereAreNone() { var json = "{" + "\"minimum_requirements\":[]," + "\"factors\":[" + "{" + "\"factor\":\"device integrity\"," + "\"attributes\":{" + "\"factor enabled\":\"1\"" + "}" + "}" + "]" + "}"; var expected = new AuthPolicy(null, null, null, null, true, null); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public void ShouldSerializeCorrectly_WithPolicy() { var encoder = new JsonNetJsonEncoder(); var policy = new AuthPolicy(2, null, null, null, null, new System.Collections.Generic.List <AuthPolicy.Location> { new AuthPolicy.Location { Radius = 60, Latitude = 27.175, Longitude = 78.0422 } } ); var o = new ServiceV3AuthsPostRequest("my-unique-user-identifier", policy, null, null, null, null, null, null); var json = encoder.EncodeObject(o); var expected = "{\"username\":\"my-unique-user-identifier\",\"policy\":{\"minimum_requirements\":[{\"requirement\":\"authenticated\",\"any\":2}],\"factors\":[{\"factor\":\"geofence\",\"requirement\":\"forced requirement\",\"priority\":1,\"attributes\":{\"locations\":[{\"radius\":60.0,\"latitude\":27.175,\"longitude\":78.0422}]}}]}}"; Assert.AreEqual(expected, json); }
public static void RSClientPutFile() { Console.WriteLine("\n===> RSClient Generate UpToken"); var authPolicy = new AuthPolicy(bucketName, 3600); string upToken = authPolicy.MakeAuthTokenString(); Console.WriteLine("upToken: " + upToken); Console.WriteLine("\n===> RSClient.PutFileWithUpToken"); PutFileRet putFileRet = RSClient.PutFileWithUpToken(upToken, bucketName, key, null, localFile, null, "key=<key>"); PrintRet(putFileRet); if (putFileRet.OK) { Console.WriteLine("Hash: " + putFileRet.Hash); } else { Console.WriteLine("Failed to RSClient.PutFileWithUpToken"); } }
// Refresh the remote manifest. public Task RefreshManifest(bool setNewAsCurrent = false) { return(Task.Run(delegate() { if (this.AlwaysAssumeCurrent) { if (File.Exists(AppPath + "\\catflap.json")) { LatestManifest = JsonConvert.DeserializeObject <Manifest>(System.IO.File.ReadAllText(AppPath + "\\catflap.json")); CurrentManifest = LatestManifest; } else { throw new Exception("Cannot use AlwaysAssumeCurrent with no local manifest."); } } else { LatestManifest = AuthPolicy.Execute(() => GetManifestFromRemote()); if (setNewAsCurrent) { System.IO.File.WriteAllText(AppPath + "\\catflap.json", JsonConvert.SerializeObject(LatestManifest)); CurrentManifest = LatestManifest; } else if (File.Exists(AppPath + "\\catflap.json")) { CurrentManifest = JsonConvert.DeserializeObject <Manifest>(System.IO.File.ReadAllText(AppPath + "\\catflap.json")); } Console.WriteLine(LatestManifest); RefreshManifestResource("catflap.bgimg"); RefreshManifestResource("favicon.ico"); } UpdateStatus(); })); }
public static int DoServiceAuthorizationWithPolicy(string username, string serviceId, string privateKey, bool jailbreakDetection, int?factors, string geofence, string apiURL) { List <Location> locations = null; // parse geofence input if (!string.IsNullOrWhiteSpace(geofence)) { try { var parts = geofence.Split(':'); if (parts.Length != 3) { Console.WriteLine("geofence should be in the format lat:lon:radius:name"); return(1); } var lat = double.Parse(parts[0]); var lon = double.Parse(parts[1]); var rad = double.Parse(parts[2]); var name = parts[3]; locations = new List <Location>(); locations.Add(new Location(rad, lat, lon, name)); } catch (FormatException) { Console.WriteLine("geofence parsing failed"); return(1); } } Console.WriteLine($"Using policy: factors: {factors}, locations: {locations?.Count}, geofence: {geofence}, jailbreak: {jailbreakDetection}"); var policy = new AuthPolicy( jailbreakDetection: jailbreakDetection, locations: locations, requiredFactors: factors ); var serviceClient = ClientFactories.MakeServiceClient(serviceId, privateKey, apiURL); return(SharedServiceHelpers.DoAuthorizationRequest(serviceClient, username, false, policy: policy)); }
public void Constructor_ShouldPopulateGeofences() { var policy = new AuthPolicy(null, null, null, null, null, new List <AuthPolicy.Location> { new AuthPolicy.Location { Latitude = 13.37, Longitude = 44.44, Radius = 10 } } ); Assert.IsTrue(policy.Factors != null); Assert.IsTrue(policy.Factors.Count == 1); Assert.IsTrue(policy.Factors[0].Factor == AuthPolicy.FactorType.Geofence); Assert.IsTrue(policy.Factors[0].Priority == 1); Assert.IsTrue(policy.Factors[0].Requirement == AuthPolicy.FactorRequirementType.ForcedRequirement); Assert.IsTrue(policy.Factors[0].Attributes != null); Assert.IsTrue(policy.Factors[0].Attributes.Locations != null); Assert.IsTrue(Math.Abs(policy.Factors[0].Attributes.Locations[0].Latitude - 13.37) < 0.01); Assert.IsTrue(Math.Abs(policy.Factors[0].Attributes.Locations[0].Longitude - 44.44) < 0.01); Assert.IsTrue(Math.Abs(policy.Factors[0].Attributes.Locations[0].Radius - 10) < 0.01); }
protected LoadBalancingUnifiedTestsBase(ConnectPolicy policy, AuthPolicy authPolicy = AuthPolicy.AuthOnNameServer) : base(policy) { this.UsePlugins = true; this.authPolicy = authPolicy; }
public void Serialization_FullObject_SerializesAsExpected() { var expected = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[" + "{" + "\"factor\":\"geofence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"locations\":[" + "{\"radius\":1.1,\"latitude\":2.1,\"longitude\":3.1}," + "{\"radius\":1.2,\"latitude\":2.2,\"longitude\":3.2}" + "]" + "}" + "},{" + "\"factor\":\"device integrity\"," + "\"requirement\":\"forced requirement\"," + "\"attributes\":{" + "\"factor enabled\":1" + "}" + "},{" + "\"factor\":\"timefence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"time fences\":[" + "{\"name\":\"tf1\",\"days\":[\"Monday\",\"Tuesday\",\"Wednesday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}," + "{\"name\":\"tf2\",\"days\":[\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}" + "]" + "}" + "}" + "]" + "}"; var geoFences = new List <AuthPolicy.Location> { new AuthPolicy.Location { Radius = 1.1, Latitude = 2.1, Longitude = 3.1 }, new AuthPolicy.Location { Radius = 1.2, Latitude = 2.2, Longitude = 3.2 } }; var timeFences = new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("tf1", new List <string> { "Monday", "Tuesday", "Wednesday" }, 0, 23, 0, 59, "America/Los_Angeles"), new AuthPolicy.TimeFence("tf2", new List <string> { "Thursday", "Friday", "Saturday", "Sunday" }, 0, 23, 0, 59, "America/Los_Angeles") }; var policy = new AuthPolicy(2, true, true, true, true, geoFences, timeFences); var json = new JsonNetJsonEncoder(); var encoded = json.EncodeObject(policy); Assert.AreEqual(expected, encoded); }
public void Serialization_ObjectParsesAsExpected() { var json = "{" + "\"minimum_requirements\":[{" + "\"requirement\":\"authenticated\"," + "\"any\":2," + "\"knowledge\":1," + "\"inherence\":1," + "\"possession\":1" + "}]," + "\"factors\":[" + "{" + "\"factor\":\"geofence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"locations\":[" + "{\"radius\":1.1,\"latitude\":2.1,\"longitude\":3.1}," + "{\"radius\":1.2,\"latitude\":2.2,\"longitude\":3.2}" + "]" + "}" + "},{" + "\"factor\":\"device integrity\"," + "\"attributes\":{" + "\"factor enabled\":\"1\"" + "}" + "},{" + "\"factor\":\"timefence\"," + "\"requirement\":\"forced requirement\"," + "\"priority\":1," + "\"attributes\":{" + "\"time fences\":[" + "{\"name\":\"tf1\",\"days\":[\"Monday\",\"Tuesday\",\"Wednesday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}," + "{\"name\":\"tf2\",\"days\":[\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],\"start hour\":0,\"end hour\":23,\"start minute\":0,\"end minute\":59,\"timezone\":\"America/Los_Angeles\"}" + "]" + "}" + "}" + "]}"; var geoFences = new List <AuthPolicy.Location> { new AuthPolicy.Location(null, 1.1, 2.1, 3.1), new AuthPolicy.Location(null, 1.2, 2.2, 3.2) }; var timeFences = new List <AuthPolicy.TimeFence> { new AuthPolicy.TimeFence("tf1", new List <string> { "Monday", "Tuesday", "Wednesday" }, 0, 23, 0, 59, "America/Los_Angeles"), new AuthPolicy.TimeFence("tf2", new List <string> { "Thursday", "Friday", "Saturday", "Sunday" }, 0, 23, 0, 59, "America/Los_Angeles") }; var expected = new AuthPolicy(2, true, true, true, true, geoFences, timeFences); var actual = new JsonNetJsonEncoder().DecodeObject <AuthPolicy>(json); actual.ShouldCompare(expected); }
public void Constructor_ShouldNotAddGeofenceFactorIfNullLocations() { var policy = new AuthPolicy(null, null, null, null, null, null); Assert.IsTrue(policy.Factors.Count == 0); }
public void Constructor_ShouldNotAddGeofenceFactorIfEmptyLocations() { var policy = new AuthPolicy(null, null, null, null, null, new List <AuthPolicy.Location>()); Assert.IsTrue(policy.Factors.Count == 0); }