Skip to content

Commit 1338469

Browse files
committed
Doing a better bytes comparison in some of JAXRS OAuth2/Jose code
1 parent 4a89a48 commit 1338469

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
*/
1919
package org.apache.cxf.rs.security.jose.jwe;
2020

21+
import java.security.MessageDigest;
2122
import java.security.spec.AlgorithmParameterSpec;
22-
import java.util.Arrays;
2323

2424
import javax.crypto.spec.IvParameterSpec;
2525

@@ -56,7 +56,7 @@ protected void validateAuthenticationTag(JweDecryptionInput jweDecryptionInput,
5656
jweDecryptionInput.getDecodedJsonHeaders());
5757
macState.mac.update(jweDecryptionInput.getEncryptedContent());
5858
byte[] expectedAuthTag = AesCbcHmacJweEncryption.signAndGetTag(macState);
59-
if (!Arrays.equals(actualAuthTag, expectedAuthTag)) {
59+
if (!MessageDigest.isEqual(actualAuthTag, expectedAuthTag)) {
6060
LOG.warning("Invalid authentication tag");
6161
throw new JweException(JweException.Error.CONTENT_DECRYPTION_FAILURE);
6262
}

rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
*/
1919
package org.apache.cxf.rs.security.jose.jws;
2020

21+
import java.security.MessageDigest;
2122
import java.security.spec.AlgorithmParameterSpec;
22-
import java.util.Arrays;
2323
import java.util.logging.Logger;
2424

2525
import org.apache.cxf.common.logging.LogUtils;
@@ -53,7 +53,7 @@ public HmacJwsSignatureVerifier(byte[] key, AlgorithmParameterSpec spec, Signatu
5353
@Override
5454
public boolean verify(JwsHeaders headers, String unsignedText, byte[] signature) {
5555
byte[] expected = computeMac(headers, unsignedText);
56-
return Arrays.equals(expected, signature);
56+
return MessageDigest.isEqual(expected, signature);
5757
}
5858

5959
private byte[] computeMac(JwsHeaders headers, String text) {

rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/tokens/hawk/AbstractHawkAccessTokenValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
package org.apache.cxf.rs.security.oauth2.tokens.hawk;
2020

2121
import java.net.URI;
22-
import java.util.Arrays;
22+
import java.security.MessageDigest;
2323
import java.util.Collections;
2424
import java.util.HashMap;
2525
import java.util.List;
@@ -78,7 +78,7 @@ public AccessTokenValidation validateAccessToken(MessageContext mc,
7878

7979
String clientMacString = schemeParams.get(OAuthConstants.HAWK_TOKEN_SIGNATURE);
8080
byte[] clientMacData = Base64Utility.decode(clientMacString);
81-
boolean validMac = Arrays.equals(serverMacData, clientMacData);
81+
boolean validMac = MessageDigest.isEqual(serverMacData, clientMacData);
8282
if (!validMac) {
8383
AuthorizationUtils.throwAuthorizationFailure(Collections
8484
.singleton(OAuthConstants.HAWK_AUTHORIZATION_SCHEME));

0 commit comments

Comments
 (0)