git commit: [CXF-5954] Prototyping the code for JAX-RS filters optionally use JWK sets
Repository: cxf Updated Branches: refs/heads/master a50e62247 - 08e47a272 [CXF-5954] Prototyping the code for JAX-RS filters optionally use JWK sets Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/08e47a27 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/08e47a27 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/08e47a27 Branch: refs/heads/master Commit: 08e47a272be0cdaf769d4392ab8be845dade0668 Parents: a50e622 Author: Sergey Beryozkin sberyoz...@talend.com Authored: Thu Sep 4 16:48:51 2014 +0100 Committer: Sergey Beryozkin sberyoz...@talend.com Committed: Thu Sep 4 16:48:51 2014 +0100 -- .../cxf/rs/security/oauth2/jwk/JsonWebKey.java | 15 .../cxf/rs/security/oauth2/jwk/JsonWebKeys.java | 42 +- .../cxf/rs/security/oauth2/jwk/JwkUtils.java| 84 .../jwt/jaxrs/AbstractJweDecryptingFilter.java | 35 ++-- .../jwt/jaxrs/AbstractJwsReaderProvider.java| 28 ++- .../jwt/jaxrs/AbstractJwsWriterProvider.java| 21 +++-- .../oauth2/jwt/jaxrs/JweWriterInterceptor.java | 27 +-- .../rs/security/oauth2/jwk/JsonWebKeyTest.java | 2 +- 8 files changed, 228 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cxf/blob/08e47a27/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java -- diff --git a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java index d251c0b..bfb61eb 100644 --- a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java +++ b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java @@ -18,12 +18,15 @@ */ package org.apache.cxf.rs.security.oauth2.jwk; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; import java.util.List; import java.util.Map; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.rs.security.oauth2.jwt.AbstractJwtObject; import org.apache.cxf.rs.security.oauth2.jwt.JwtConstants; +import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils; public class JsonWebKey extends AbstractJwtObject { @@ -156,4 +159,16 @@ public class JsonWebKey extends AbstractJwtObject { public Object getProperty(String name) { return super.getValue(name); } + +public RSAPublicKey toRSAPublicKey() { +String encodedModulus = (String)super.getValue(RSA_MODULUS); +String encodedPublicExponent = (String)super.getValue(RSA_PUBLIC_EXP); +return CryptoUtils.getRSAPublicKey(encodedModulus, encodedPublicExponent); +} +public RSAPrivateKey toRSAPrivateKey() { +String encodedPublicExponent = (String)super.getValue(RSA_PUBLIC_EXP); +String encodedPrivateExponent = (String)super.getValue(RSA_PRIVATE_EXP); +return CryptoUtils.getRSAPrivateKey(encodedPublicExponent, encodedPrivateExponent); +} + } http://git-wip-us.apache.org/repos/asf/cxf/blob/08e47a27/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java -- diff --git a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java index 3b699f4..a0dd8db 100644 --- a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java +++ b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java @@ -53,7 +53,7 @@ public class JsonWebKeys extends AbstractJwtObject { super.setValue(KEYS_PROPERTY, keys); } -public MapString, JsonWebKey getKeysMap() { +public MapString, JsonWebKey getKeyIdMap() { ListJsonWebKey keys = getKeys(); if (keys == null) { return Collections.emptyMap(); @@ -67,4 +67,44 @@ public class JsonWebKeys extends AbstractJwtObject { } return map; } +public JsonWebKey getKey(String kid) { +return getKeyIdMap().get(kid); +} +public MapString, ListJsonWebKey getKeyTypeMap() { +return getKeyPropertyMap(JsonWebKey.KEY_TYPE); +} +public MapString, ListJsonWebKey getKeyUseMap() { +return getKeyPropertyMap(JsonWebKey.PUBLIC_KEY_USE); +} +private MapString, ListJsonWebKey getKeyPropertyMap(String propertyName) { +
git commit: [CXF-5954] Prototyping the code for JAX-RS filters optionally use JWK sets
Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 183b062de - a588526b9 [CXF-5954] Prototyping the code for JAX-RS filters optionally use JWK sets Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/a588526b Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a588526b Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a588526b Branch: refs/heads/3.0.x-fixes Commit: a588526b98144342d114878948119746d2254589 Parents: 183b062 Author: Sergey Beryozkin sberyoz...@talend.com Authored: Thu Sep 4 16:48:51 2014 +0100 Committer: Sergey Beryozkin sberyoz...@talend.com Committed: Thu Sep 4 16:51:47 2014 +0100 -- .../cxf/rs/security/oauth2/jwk/JsonWebKey.java | 15 .../cxf/rs/security/oauth2/jwk/JsonWebKeys.java | 42 +- .../cxf/rs/security/oauth2/jwk/JwkUtils.java| 84 .../jwt/jaxrs/AbstractJweDecryptingFilter.java | 35 ++-- .../jwt/jaxrs/AbstractJwsReaderProvider.java| 28 ++- .../jwt/jaxrs/AbstractJwsWriterProvider.java| 21 +++-- .../oauth2/jwt/jaxrs/JweWriterInterceptor.java | 27 +-- .../rs/security/oauth2/jwk/JsonWebKeyTest.java | 2 +- 8 files changed, 228 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cxf/blob/a588526b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java -- diff --git a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java index d251c0b..bfb61eb 100644 --- a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java +++ b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKey.java @@ -18,12 +18,15 @@ */ package org.apache.cxf.rs.security.oauth2.jwk; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; import java.util.List; import java.util.Map; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.rs.security.oauth2.jwt.AbstractJwtObject; import org.apache.cxf.rs.security.oauth2.jwt.JwtConstants; +import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils; public class JsonWebKey extends AbstractJwtObject { @@ -156,4 +159,16 @@ public class JsonWebKey extends AbstractJwtObject { public Object getProperty(String name) { return super.getValue(name); } + +public RSAPublicKey toRSAPublicKey() { +String encodedModulus = (String)super.getValue(RSA_MODULUS); +String encodedPublicExponent = (String)super.getValue(RSA_PUBLIC_EXP); +return CryptoUtils.getRSAPublicKey(encodedModulus, encodedPublicExponent); +} +public RSAPrivateKey toRSAPrivateKey() { +String encodedPublicExponent = (String)super.getValue(RSA_PUBLIC_EXP); +String encodedPrivateExponent = (String)super.getValue(RSA_PRIVATE_EXP); +return CryptoUtils.getRSAPrivateKey(encodedPublicExponent, encodedPrivateExponent); +} + } http://git-wip-us.apache.org/repos/asf/cxf/blob/a588526b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java -- diff --git a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java index 3b699f4..a0dd8db 100644 --- a/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java +++ b/rt/rs/security/oauth-parent/oauth2-jwt/src/main/java/org/apache/cxf/rs/security/oauth2/jwk/JsonWebKeys.java @@ -53,7 +53,7 @@ public class JsonWebKeys extends AbstractJwtObject { super.setValue(KEYS_PROPERTY, keys); } -public MapString, JsonWebKey getKeysMap() { +public MapString, JsonWebKey getKeyIdMap() { ListJsonWebKey keys = getKeys(); if (keys == null) { return Collections.emptyMap(); @@ -67,4 +67,44 @@ public class JsonWebKeys extends AbstractJwtObject { } return map; } +public JsonWebKey getKey(String kid) { +return getKeyIdMap().get(kid); +} +public MapString, ListJsonWebKey getKeyTypeMap() { +return getKeyPropertyMap(JsonWebKey.KEY_TYPE); +} +public MapString, ListJsonWebKey getKeyUseMap() { +return getKeyPropertyMap(JsonWebKey.PUBLIC_KEY_USE); +} +private MapString, ListJsonWebKey getKeyPropertyMap(String propertyName) {