Skip to content

Commit

Permalink
Merge pull request #36 from dyremeen/develop
Browse files Browse the repository at this point in the history
Small fix for creating a conforming audience validator via ClaimValidatorFactory
  • Loading branch information
pokowaka authored Jun 18, 2018
2 parents e13ea08 + 2ca4687 commit c45c98e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/validators/claims/claimvalidatorfactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ ClaimValidator *ClaimValidatorFactory::BuildInternal(const json &json) {
ClaimValidator *constructed = nullptr;
try {
if (json.count("iss")) {
constructed = new ListClaimValidator("iss", BuildList(json["iss"]));
constructed = new IssValidator(BuildList(json["iss"]));
} else if (json.count("sub")) {
constructed = new ListClaimValidator("sub", BuildList(json["sub"]));
constructed = new SubValidator(BuildList(json["sub"]));
} else if (json.count("aud")) {
constructed = new ListClaimValidator("aud", BuildList(json["aud"]));
constructed = new AudValidator(BuildList(json["aud"]));
} else if (json.count("exp")) {
::json val = json["exp"];
::json leeway = val["leeway"];
Expand Down
9 changes: 9 additions & 0 deletions test/validators/claim_validators_factory_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,15 @@ TEST(parse_test, iss_not_a_stringlist) {
ASSERT_THROW(ClaimValidatorFactory::Build(json), std::logic_error);
}

// This test tries to test that the factory has created an AudValidator
// and not a basic ListClaimValidator
TEST(parse_test, aud_array_value_in_payload) {
std::string json = "{ \"aud\" : [ \"foo\" ]}";
claim_ptr valid(ClaimValidatorFactory::Build(json));
::json aud = {{"aud", ::json::array({"foo", "bar", "baz"})}};
EXPECT_TRUE(valid->IsValid(aud));
}

TEST(parse_test, optional_exp) {
std::string json = "{ \"optional\" : { \"exp\" : { \"leeway\" : 32} } }";
claim_ptr valid(ClaimValidatorFactory::Build(json));
Expand Down

0 comments on commit c45c98e

Please sign in to comment.