Skip to content

Commit 8137747

Browse files
authored
refactor: fix code smell (#36)
Using "split" method on string instead of finding individual positions of the dot(".") Also making the arguments passed to the JweObject constructor more readable.
1 parent b174332 commit 8137747

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/main/java/com/mastercard/developer/encryption/jwe/JweObject.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,17 @@ private static String base64UrlEncode(byte[] bytes) {
9999
}
100100

101101
public static JweObject parse(String encryptedPayload, JsonEngine jsonEngine) {
102-
String t = encryptedPayload.trim();
103-
int dot1 = t.indexOf('.');
104-
int dot2 = t.indexOf('.', dot1 + 1);
105-
int dot3 = t.indexOf('.', dot2 + 1);
106-
int dot4 = t.indexOf('.', dot3 + 1);
107-
JweHeader header = JweHeader.parseJweHeader(t.substring(0, dot1), jsonEngine);
108-
109-
return new JweObject(header, t.substring(0, dot1), t.substring(dot1 + 1, dot2), t.substring(dot2 + 1, dot3), t.substring(dot3 + 1, dot4), t.substring(dot4 + 1));
102+
String[] payloadParts = encryptedPayload.trim()
103+
.split("\\.");
104+
105+
String rawHeader = payloadParts[0];
106+
String encryptedKey = payloadParts[1];
107+
String iv = payloadParts[2];
108+
String cipherText = payloadParts[3];
109+
String authTag = payloadParts[4];
110+
JweHeader header = JweHeader.parseJweHeader(rawHeader, jsonEngine);
111+
112+
return new JweObject(header, rawHeader, encryptedKey, iv, cipherText, authTag);
110113
}
111114

112115
public JweHeader getHeader() {

0 commit comments

Comments
 (0)