diff --git a/src/main/java/com/clevercloud/biscuit/token/Biscuit.java b/src/main/java/com/clevercloud/biscuit/token/Biscuit.java index 216e6a2c..804a761b 100644 --- a/src/main/java/com/clevercloud/biscuit/token/Biscuit.java +++ b/src/main/java/com/clevercloud/biscuit/token/Biscuit.java @@ -79,21 +79,33 @@ public static com.clevercloud.biscuit.token.builder.Biscuit builder(final Secure * @param rng random number generator * @param root root private key * @param authority authority block - * @return + * @return Biscuit */ - @Deprecated static public Biscuit make(final SecureRandom rng, final KeyPair root, final SymbolTable symbols, final Block authority) throws Error.SymbolTableOverlap, Error.FormatError { return Biscuit.make(rng, root, Option.none(), symbols, authority); } + /** * Creates a token * * @param rng random number generator * @param root root private key * @param authority authority block - * @return + * @return Biscuit + */ + static public Biscuit make(final SecureRandom rng, final KeyPair root, final Integer root_key_id, final SymbolTable symbols, final Block authority) throws Error.SymbolTableOverlap, Error.FormatError { + return Biscuit.make(rng, root, Option.of(root_key_id), symbols, authority); + } + + /** + * Creates a token + * + * @param rng random number generator + * @param root root private key + * @param authority authority block + * @return Biscuit */ - static public Biscuit make(final SecureRandom rng, final KeyPair root, final Option root_key_id, final SymbolTable symbols, final Block authority) throws Error.SymbolTableOverlap, Error.FormatError { + static private Biscuit make(final SecureRandom rng, final KeyPair root, final Option root_key_id, final SymbolTable symbols, final Block authority) throws Error.SymbolTableOverlap, Error.FormatError { if (!Collections.disjoint(symbols.symbols, authority.symbols.symbols)) { throw new Error.SymbolTableOverlap(); } diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java b/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java index ad763545..25db132f 100644 --- a/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java +++ b/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java @@ -16,6 +16,7 @@ import java.util.Arrays; import java.util.List; +import static com.clevercloud.biscuit.token.Biscuit.make; import static com.clevercloud.biscuit.token.builder.Utils.*; public class Biscuit { @@ -132,7 +133,11 @@ public com.clevercloud.biscuit.token.Biscuit build() throws Error { } Block authority_block = new com.clevercloud.biscuit.token.Block(symbols, context, this.facts, this.rules, this.checks); - return com.clevercloud.biscuit.token.Biscuit.make(this.rng, this.root, this.root_key_id, base_symbols, authority_block); + if (this.root_key_id.isDefined()) { + return make(this.rng, this.root, this.root_key_id.get(), base_symbols, authority_block); + } else { + return make(this.rng, this.root, base_symbols, authority_block); + } } public Biscuit add_right(String resource, String right) throws Error.Language { diff --git a/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java b/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java index e9091e7d..5a83ff31 100644 --- a/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java +++ b/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java @@ -646,7 +646,7 @@ public void testRootKeyId() throws NoSuchAlgorithmException, SignatureException, authority_builder.add_fact(fact("right", Arrays.asList(s("file2"), s("read")))); authority_builder.add_fact(fact("right", Arrays.asList(s("file1"), s("write")))); - Biscuit b = Biscuit.make(rng, root, Option.some(1), Biscuit.default_symbol_table(), authority_builder.build()); + Biscuit b = Biscuit.make(rng, root, 1, Biscuit.default_symbol_table(), authority_builder.build()); System.out.println(b.print());