git commit: [CXF-5954] Prototyping the code for JAX-RS filters optionally use JWK sets

2014-09-04 Thread sergeyb
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

2014-09-04 Thread sergeyb
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) {