Skip to content

Commit 39322ab

Browse files
committed
[claim validation] Refactor issuer
1 parent 198c91b commit 39322ab

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

JWT/JWT.swift

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,20 @@ func load(jwt:String) -> LoadResult {
111111

112112
// MARK: Validation
113113

114+
func validateIssuer(payload:Payload, issuer:String?) -> InvalidToken? {
115+
if let issuer = issuer {
116+
if let iss = payload["iss"] as? String {
117+
if iss != issuer {
118+
return .InvalidIssuer
119+
}
120+
} else {
121+
return .InvalidIssuer
122+
}
123+
}
124+
125+
return nil
126+
}
127+
114128
func validateDate(payload:Payload, key:String, comparison:NSComparisonResult, failure:InvalidToken, decodeError:String) -> InvalidToken? {
115129
if let timestamp = payload[key] as? NSTimeInterval {
116130
let date = NSDate(timeIntervalSince1970: timestamp)
@@ -125,17 +139,8 @@ func validateDate(payload:Payload, key:String, comparison:NSComparisonResult, fa
125139
}
126140

127141
func validateClaims(payload:Payload, audience:String?, issuer:String?) -> InvalidToken? {
128-
if let issuer = issuer {
129-
if let iss = payload["iss"] as? String {
130-
if iss != issuer {
131-
return .InvalidIssuer
132-
}
133-
} else {
134-
return .InvalidIssuer
135-
}
136-
}
137-
138-
return validateDate(payload, "exp", .OrderedAscending, .ExpiredSignature, "Expiration time claim (exp) must be an integer") ??
142+
return validateIssuer(payload, issuer) ??
143+
validateDate(payload, "exp", .OrderedAscending, .ExpiredSignature, "Expiration time claim (exp) must be an integer") ??
139144
validateDate(payload, "nbf", .OrderedDescending, .ImmatureSignature, "Not before claim (nbf) must be an integer") ??
140145
validateDate(payload, "iat", .OrderedDescending, .InvalidIssuedAt, "Issued at claim (iat) must be an integer")
141146
}

0 commit comments

Comments
 (0)