You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bu...@apache.org on 2019/09/17 20:39:35 UTC
[cxf] branch master updated: cxf-rt-rs-security-jose: do not throw
JwkException twice
This is an automated email from the ASF dual-hosted git repository.
buhhunyx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new de03dfa cxf-rt-rs-security-jose: do not throw JwkException twice
de03dfa is described below
commit de03dfae71010bd3719430d8d7453732f4c151ea
Author: Alexey Markevich <bu...@gmail.com>
AuthorDate: Tue Sep 17 09:54:09 2019 +0300
cxf-rt-rs-security-jose: do not throw JwkException twice
---
.../org/apache/cxf/rs/security/jose/common/JoseUtils.java | 8 ++++++--
.../java/org/apache/cxf/rs/security/jose/jwk/JwkUtils.java | 11 ++++-------
.../org/apache/cxf/rs/security/jose/jwk/JwkUtilsTest.java | 13 +++++++++++++
3 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/JoseUtils.java b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/JoseUtils.java
index 330543b..2f0bb75 100644
--- a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/JoseUtils.java
+++ b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/JoseUtils.java
@@ -19,6 +19,7 @@
package org.apache.cxf.rs.security.jose.common;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.StandardCharsets;
@@ -156,12 +157,15 @@ public final class JoseUtils {
// <Start> Copied from JAX-RS RT FRONTEND ResourceUtils
//
- public static InputStream getResourceStream(String loc, Bus bus) throws Exception {
+ public static InputStream getResourceStream(String loc, Bus bus) throws IOException {
URL url = getResourceURL(loc, bus);
return url == null ? null : url.openStream();
}
- public static URL getResourceURL(String loc, Bus bus) throws Exception {
+ public static URL getResourceURL(String loc, Bus bus) throws IOException {
+ if (loc == null) {
+ return null;
+ }
URL url = null;
if (loc.startsWith(CLASSPATH_PREFIX)) {
String path = loc.substring(CLASSPATH_PREFIX.length());
diff --git a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jwk/JwkUtils.java b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jwk/JwkUtils.java
index 59d84bd..888837e 100644
--- a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jwk/JwkUtils.java
+++ b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jwk/JwkUtils.java
@@ -271,15 +271,12 @@ public final class JwkUtils {
String keyContent = null;
String keyStoreLoc = props.getProperty(JoseConstants.RSSEC_KEY_STORE_FILE);
if (keyStoreLoc != null) {
- try {
- InputStream is = JoseUtils.getResourceStream(keyStoreLoc, bus);
- if (is == null) {
+ try (InputStream isResource = JoseUtils.getResourceStream(keyStoreLoc, bus)) {
+ if (isResource == null) {
throw new JwkException("Error in loading keystore location: " + keyStoreLoc);
}
- try (InputStream isResource = is) {
- keyContent = IOUtils.readStringFromStream(isResource);
- }
- } catch (Exception ex) {
+ keyContent = IOUtils.readStringFromStream(isResource);
+ } catch (IOException ex) {
throw new JwkException(ex);
}
} else {
diff --git a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwk/JwkUtilsTest.java b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwk/JwkUtilsTest.java
index 06bff16..2c0bb14 100644
--- a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwk/JwkUtilsTest.java
+++ b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jwk/JwkUtilsTest.java
@@ -21,7 +21,9 @@ package org.apache.cxf.rs.security.jose.jwk;
import java.math.BigInteger;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
+import java.util.Properties;
+import org.apache.cxf.rs.security.jose.common.JoseConstants;
import org.apache.cxf.rs.security.jose.common.JoseException;
import org.apache.cxf.rs.security.jose.common.JoseUtils;
import org.apache.cxf.rs.security.jose.common.KeyManagementUtils;
@@ -189,5 +191,16 @@ public class JwkUtilsTest {
String thumbprint = JwkUtils.getThumbprint(EC_521_KEY);
assertEquals("rz4Ohmpxg-UOWIWqWKHlOe0bHSjNUFlHW5vwG_M7qYg", thumbprint);
}
+ @Test
+ public void testLoadPublicJwkSet() throws Exception {
+ final Properties props = new Properties();
+ props.setProperty(JoseConstants.RSSEC_KEY_STORE_FILE, "unavailable");
+ try {
+ JwkUtils.loadPublicJwkSet(null, props);
+ fail();
+ } catch (JwkException e) {
+ assertNull(e.getCause());
+ }
+ }
}
\ No newline at end of file