jwt structures are claims based

pull/59/head
Justin Richer 2012-01-04 10:34:22 -05:00
parent cd0a117031
commit febad61730
3 changed files with 17 additions and 9 deletions

View File

@ -50,7 +50,8 @@ public class JwtClaims extends ClaimSet {
setJwtId(element.getValue().getAsString()); setJwtId(element.getValue().getAsString());
} else if (element.getKey().equals(TYPE)) { } else if (element.getKey().equals(TYPE)) {
setType(element.getValue().getAsString()); setType(element.getValue().getAsString());
} else if (element.getValue().isJsonPrimitive()){ } else {
if (element.getValue().isJsonPrimitive()){
// we handle all primitives in here // we handle all primitives in here
JsonPrimitive prim = element.getValue().getAsJsonPrimitive(); JsonPrimitive prim = element.getValue().getAsJsonPrimitive();
setClaim(element.getKey(), prim); setClaim(element.getKey(), prim);
@ -59,6 +60,7 @@ public class JwtClaims extends ClaimSet {
} }
} }
} }
}
/** /**
* @return the expiration * @return the expiration

View File

@ -6,6 +6,7 @@ import java.util.Map.Entry;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
public class JwtHeader extends ClaimSet { public class JwtHeader extends ClaimSet {
@ -34,8 +35,13 @@ public class JwtHeader extends ClaimSet {
} else if (element.getKey().equals(ENCRYPTION_METHOD)) { } else if (element.getKey().equals(ENCRYPTION_METHOD)) {
this.setEncryptionMethod(json.get(ENCRYPTION_METHOD).getAsString()); this.setEncryptionMethod(json.get(ENCRYPTION_METHOD).getAsString());
} else { } else {
// TODO: this assumes string encoding for extensions, probably not quite correct if (element.getValue().isJsonPrimitive()){
setClaim(element.getKey(), element.getValue().getAsString()); // we handle all primitives in here
JsonPrimitive prim = element.getValue().getAsJsonPrimitive();
setClaim(element.getKey(), prim);
} else {
setClaim(element.getKey(), element.getValue());
}
} }
} }
} }

View File

@ -21,8 +21,8 @@ public class JwtTest {
public void testToStringPlaintext() { public void testToStringPlaintext() {
Jwt jwt = new Jwt(); Jwt jwt = new Jwt();
jwt.getHeader().setAlgorithm("none"); jwt.getHeader().setAlgorithm("none");
jwt.getClaims().setIssuer("joe");
jwt.getClaims().setExpiration(new Date(1300819380L * 1000L)); jwt.getClaims().setExpiration(new Date(1300819380L * 1000L));
jwt.getClaims().setIssuer("joe");
jwt.getClaims().setClaim("http://example.com/is_root", Boolean.TRUE); jwt.getClaims().setClaim("http://example.com/is_root", Boolean.TRUE);
// sign it with a blank signature // sign it with a blank signature
@ -48,8 +48,8 @@ public class JwtTest {
Jwt jwt = new Jwt(); Jwt jwt = new Jwt();
jwt.getHeader().setType("JWT"); jwt.getHeader().setType("JWT");
jwt.getHeader().setAlgorithm("HS256"); jwt.getHeader().setAlgorithm("HS256");
jwt.getClaims().setIssuer("joe");
jwt.getClaims().setExpiration(new Date(1300819380L * 1000L)); jwt.getClaims().setExpiration(new Date(1300819380L * 1000L));
jwt.getClaims().setIssuer("joe");
jwt.getClaims().setClaim("http://example.com/is_root", Boolean.TRUE); jwt.getClaims().setClaim("http://example.com/is_root", Boolean.TRUE);
// sign it // sign it