コード例 #1
0
        public async Task When_Encrypting_Jws_Then_Operation_Is_Called()
        {
            // ARRANGE
            InitializeFakeObjects();
            const string url = "http://google.be/";
            const string kid = "kid";
            var          createJweParameter = new CreateJweParameter
            {
                Url = url,
                Jws = "jws",
                Kid = kid,
            };
            var jsonWebKey = new JsonWebKey();

            _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>()))
            .Returns(Task.FromResult(jsonWebKey));

            // ACT
            await _createJweAction.ExecuteAsync(createJweParameter).ConfigureAwait(false);

            // ASSERT
            _jweGeneratorStub.Verify(j => j.GenerateJwe(It.IsAny <string>(),
                                                        It.IsAny <JweAlg>(),
                                                        It.IsAny <JweEnc>(),
                                                        It.IsAny <JsonWebKey>()));
        }
コード例 #2
0
        public async Task <string> ExecuteAsync(CreateJweParameter createJweParameter)
        {
            if (createJweParameter == null)
            {
                throw new ArgumentNullException(nameof(createJweParameter));
            }

            if (string.IsNullOrWhiteSpace(createJweParameter.Url))
            {
                throw new ArgumentNullException(nameof(createJweParameter.Url));
            }

            if (string.IsNullOrWhiteSpace(createJweParameter.Jws))
            {
                throw new ArgumentNullException(nameof(createJweParameter.Jws));
            }

            if (string.IsNullOrWhiteSpace(createJweParameter.Kid))
            {
                throw new ArgumentNullException(nameof(createJweParameter.Kid));
            }

            Uri uri = null;

            if (!Uri.TryCreate(createJweParameter.Url, UriKind.Absolute, out uri))
            {
                throw new IdentityServerManagerException(
                          ErrorCodes.InvalidRequestCode,
                          string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, createJweParameter.Url));
            }

            var jsonWebKey = await _jsonWebKeyHelper.GetJsonWebKey(createJweParameter.Kid, uri).ConfigureAwait(false);

            if (jsonWebKey == null)
            {
                throw new IdentityServerManagerException(
                          ErrorCodes.InvalidRequestCode,
                          string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, createJweParameter.Kid, uri.AbsoluteUri));
            }

            var result = string.Empty;

            if (!string.IsNullOrWhiteSpace(createJweParameter.Password))
            {
                result = _jweGenerator.GenerateJweByUsingSymmetricPassword(createJweParameter.Jws,
                                                                           createJweParameter.Alg,
                                                                           createJweParameter.Enc,
                                                                           jsonWebKey,
                                                                           createJweParameter.Password);
            }
            else
            {
                result = _jweGenerator.GenerateJwe(createJweParameter.Jws,
                                                   createJweParameter.Alg,
                                                   createJweParameter.Enc,
                                                   jsonWebKey);
            }

            return(result);
        }
コード例 #3
0
        public Task <string> CreateJwe(CreateJweParameter createJweParameter)
        {
            if (createJweParameter == null)
            {
                throw new ArgumentNullException(nameof(createJweParameter));
            }

            return(_createJweAction.ExecuteAsync(createJweParameter));
        }
コード例 #4
0
        public async Task When_Passing_Not_Well_Formed_Uri_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();
            const string url = "url";
            var          createJweParameter = new CreateJweParameter
            {
                Url = url,
                Jws = "jws",
                Kid = "kid"
            };

            // ACT & ASSERT
            var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJweAction.ExecuteAsync(createJweParameter)).ConfigureAwait(false);

            Assert.NotNull(exception);
            Assert.True(exception.Code == ErrorCodes.InvalidRequestCode);
            Assert.True(exception.Message == string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, url));
        }
コード例 #5
0
        public void When_Passing_Null_Parameter_Then_Exception_Are_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();
            var createJweParameterWithoutUrl = new CreateJweParameter();
            var createJweParameterWithoutJws = new CreateJweParameter
            {
                Url = "url"
            };
            var createJweParameterWithoutKid = new CreateJweParameter
            {
                Url = "url",
                Jws = "jws"
            };

            // ACT & ASSERT
            Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(null)).ConfigureAwait(false);
            Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutUrl)).ConfigureAwait(false);
            Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutJws)).ConfigureAwait(false);
            Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutKid)).ConfigureAwait(false);
        }
コード例 #6
0
        public async Task When_JsonWebKey_Doesnt_Exist_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();
            const string url = "http://google.be/";
            const string kid = "kid";
            var          createJweParameter = new CreateJweParameter
            {
                Url = url,
                Jws = "jws",
                Kid = kid
            };

            _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>()))
            .Returns(Task.FromResult <JsonWebKey>(null));

            // ACT & ASSERT
            var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJweAction.ExecuteAsync(createJweParameter)).ConfigureAwait(false);

            Assert.NotNull(exception);
            Assert.True(exception.Code == ErrorCodes.InvalidRequestCode);
            Assert.True(exception.Message == string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, kid, url));
        }