Ejemplo n.º 1
0
        public void SecurityContext_GetInstance_ReturnsSameInstance()
        {
            var securityContext1 = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName");
            var securityContext2 = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName");

            Assert.AreEqual(securityContext1, securityContext2);
        }
Ejemplo n.º 2
0
        public void SecurityContextWithDefaultCredendialsAndNoECS_CreatedTwice_ReturnsValidServiceTokenAndAuditInfo()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));

            securityContext = new SecurityContext(new NetworkCredential("testerl", Passwords["testerl"], "fcsameria.com"), "MyApplicationName", "MyPartnerName");


            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            serviceToken = securityContext.ServiceToken;
            auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));
        }
Ejemplo n.º 3
0
        public void SecurityContext_GetInstanceWithForceNewInstanceTrue_ReturnsNewInstance()
        {
            var securityContext1 = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);
            var securityContext2 = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            Assert.AreNotEqual(securityContext1, securityContext2);
        }
Ejemplo n.º 4
0
        SecurityContextWithDefaultCredendialsAndNoECSForFCMAEndpoint_ReturnsValidServiceTokenAndResultsFormWebAPICall
            ()
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            var securityContext = SecurityContext.GetInstance("MyApplicationName", string.Empty, true);

            securityContext.AuthenticationEndpoint =
                "https://makydevweb10.maky.midam.farm/enterprisetokenawareapplication/?fcsa=";

            var serviceToken = securityContext.ServiceToken;

            HttpWebRequest webRequest =
                (HttpWebRequest)
                WebRequest.Create(
                    "https://makydevweb10.maky.midam.farm/accountnumberapi/api/LoanNumberService/GetLoanNumber?loanType=L");

            webRequest.Headers.Add("Authorization", serviceToken);
            HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
            string          result;

            using (var responseStream = response.GetResponseStream())
            {
                using (var reader = new StreamReader(responseStream))
                {
                    result = reader.ReadToEnd();
                }
            }

            Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
            Assert.IsFalse(String.IsNullOrEmpty(result));
            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
        }
Ejemplo n.º 5
0
        public void WhenCallingAnExternalService_WithTheGeneratedServiceTokenAndAuditInfo_ReturnsJsonResponse()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            WebClient webClient = new WebClient();

            webClient.Encoding = System.Text.Encoding.UTF8;
            webClient.Headers.Add("Authorization", serviceToken);
            webClient.Headers.Add("FCSA-Audit", auditInfo);

            string webException = string.Empty;

            try
            {
                var responseString =
                    webClient.DownloadString(
                        "https://devtitan.fcsamerica.com/CustomerView/v8/rest/api/customers/12345/FCSA");
            }
            catch (WebException ex)
            {
                webException = ex.Message;
            }
            Assert.AreEqual(string.Empty, webException);
        }
Ejemplo n.º 6
0
        public void RequestingExpiredServiceToken__ReturnsNewServiceToken()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            securityContext.AuthenticationEndpoint     = AUTHENTICATION_ENDPOINT;
            securityContext.RefreshMinutesBeforeExpire = 601; // 10 hours and 1 minute.
            var serviceToken1 = securityContext.ServiceToken;
            var serviceToken2 = securityContext.ServiceToken;

            Assert.AreNotEqual(serviceToken1, serviceToken2);
        }
Ejemplo n.º 7
0
        public void RequestingUnExpiredServiceToken__ReturnsSameServiceToken()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            securityContext.AuthenticationEndpoint = AUTHENTICATION_ENDPOINT;

            var serviceToken1 = securityContext.ServiceToken;
            var serviceToken2 = securityContext.ServiceToken;

            Assert.AreEqual(serviceToken1, serviceToken2);
        }
Ejemplo n.º 8
0
        public void SecurityContextWithDefaultCredendialsAndNoECS_ReturnsValidServiceTokenAndAuditInfo()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName", "MyPartnerName", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));
        }
Ejemplo n.º 9
0
        public void SecurityContext_SettingEndpoints_CreatesValidTokens()
        {
            var securityContext = SecurityContext.GetInstance("MyAppName", "MyPartnerName", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));
        }
Ejemplo n.º 10
0
        public void SecurityContextInstance_WithOverwittenRelyingParty_ReturnsAuditInfoWithCorrectAppplicationName()
        {
            var securityContext = SecurityContext.GetInstance("UnitTestApp", "PartnerA", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;
            securityContext.RelyingParty             = "devinternal.fcsamerica.net:TokenGenerator";


            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));
        }
Ejemplo n.º 11
0
        // [TestMethod]
        public void SecurityContextInstance_WithOverwittenRealm_ReturnsTokenWithRealm()
        {
            var securityContext = SecurityContext.GetInstance("UnitTestApp", "PartnerA", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT +
                                                       "?realm=devinternal.fcsamerica.net:AGRIPOINT";


            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            Assert.IsFalse(String.IsNullOrEmpty(serviceToken));
            Assert.IsFalse(String.IsNullOrEmpty(auditInfo));
        }
Ejemplo n.º 12
0
        SecurityContextInstance_WithOverwittenPartnerNameAndApplicationName_ReturnsAuditInfoWithCorrectPartnerNameAndAppplicationName
            ()
        {
            var securityContext =
                SecurityContext.GetInstance(
                    "http://DevTitan.FCSAmerica.com/EnterpriseConfigurationStore/v1/RESTServices/api/ConfigItems",
                    "MyBogusApplication", "MyBogusPartner", true);
            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            var     auditInfoBytes = Convert.FromBase64String(auditInfo);
            var     jsonAuditInfo  = Encoding.UTF8.GetString(auditInfoBytes);
            JObject jobject        = JsonConvert.DeserializeObject <JObject>(jsonAuditInfo);

            Assert.AreEqual("MyBogusPartner", jobject["SignedData"]["PartnerName"]);
            Assert.AreEqual("MyBogusApplication", jobject["SignedData"]["Application"]);
        }
Ejemplo n.º 13
0
        public void WhenCallingAnExternalService_WithTheGeneratedServiceTokenAndAuditInfo_Returns200StatusCode()
        {
            var securityContext = SecurityContext.GetInstance("MyApplicationName1", "MyPartnerName", true);

            securityContext.AuditInfoServiceEndpoint = AUDITINFO_SERVICE_ENDPOINT;
            securityContext.AuthenticationEndpoint   = AUTHENTICATION_ENDPOINT;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            WebClient webClient = new WebClient();

            webClient.Encoding = System.Text.Encoding.UTF8;
            webClient.Headers.Add("Authorization", serviceToken);
            webClient.Headers.Add("FCSA-Audit", auditInfo);

            var responseString =
                webClient.DownloadString("https://devinternal.fcsamerica.net/McGruff/Reference/rest/api/ping/authorize");

            Assert.AreEqual("\"I am Authorize!\"", responseString);
        }
Ejemplo n.º 14
0
        public void SecurityContextInstance_WithProvidedIdPTokenOverridded_ReturnsValidSTSToken()
        {
            var securityContext =
                SecurityContext.GetInstance(
                    "http://DevTitan.FCSAmerica.com/EnterpriseConfigurationStore/v1/RESTServices/api/ConfigItems",
                    "MyBogusApplication", "MyBogusPartner", true);

            var securityToken =
                new WSTrustTokenGenerator().GetToken(
                    "https://testfs.fcsamerica.com/adfs/services/trust/13/windowsmixed",
                    "https://devsts.fcsamerica.net/");

            securityContext.IdpTokenOverride = securityToken;

            var serviceToken = securityContext.ServiceToken;
            var auditInfo    = securityContext.AuditInfo;

            var     auditInfoBytes = Convert.FromBase64String(auditInfo);
            var     jsonAuditInfo  = Encoding.UTF8.GetString(auditInfoBytes);
            JObject jobject        = JsonConvert.DeserializeObject <JObject>(jsonAuditInfo);

            Assert.AreEqual("MyBogusPartner", jobject["SignedData"]["PartnerName"]);
            Assert.AreEqual("MyBogusApplication", jobject["SignedData"]["Application"]);
        }