You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2016/04/15 12:10:41 UTC

cxf git commit: Some clean up in OAuth2 JPA

Repository: cxf
Updated Branches:
  refs/heads/master d2661a973 -> 74b0254f4


Some clean up in OAuth2 JPA


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/74b0254f
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/74b0254f
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/74b0254f

Branch: refs/heads/master
Commit: 74b0254f497dfb277645253ebb0390ac56d2653b
Parents: d2661a9
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Fri Apr 15 11:10:27 2016 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Fri Apr 15 11:10:27 2016 +0100

----------------------------------------------------------------------
 .../oauth2/grants/code/JPACodeDataProvider.java | 16 ++----
 .../oauth2/provider/JPAOAuthDataProvider.java   | 51 +++++---------------
 rt/rs/security/sso/oidc/pom.xml                 |  2 +-
 3 files changed, 18 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/74b0254f/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/JPACodeDataProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/JPACodeDataProvider.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/JPACodeDataProvider.java
index d582fcf..c122f34 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/JPACodeDataProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/JPACodeDataProvider.java
@@ -20,7 +20,6 @@ package org.apache.cxf.rs.security.oauth2.grants.code;
 
 import java.util.List;
 
-import javax.persistence.NoResultException;
 import javax.persistence.TypedQuery;
 
 import org.apache.cxf.rs.security.oauth2.common.Client;
@@ -50,13 +49,11 @@ public class JPACodeDataProvider extends JPAOAuthDataProvider implements Authori
     
     @Override
     public ServerAuthorizationCodeGrant removeCodeGrant(String code) throws OAuthServiceException {
-        try {
-            ServerAuthorizationCodeGrant grant = getCodeQuery(code).getSingleResult();
+        ServerAuthorizationCodeGrant grant = getEntityManager().find(ServerAuthorizationCodeGrant.class, code);
+        if (grant != null) {
             removeEntity(grant);
-            return grant;
-        } catch (NoResultException ex) {
-            return null;
-        }
+        } 
+        return grant;
     }
 
     @Override
@@ -67,11 +64,6 @@ public class JPACodeDataProvider extends JPAOAuthDataProvider implements Authori
     public void setCodeLifetime(long codeLifetime) {
         this.codeLifetime = codeLifetime;
     }
-    protected TypedQuery<ServerAuthorizationCodeGrant> getCodeQuery(String code) {
-        return getEntityManager().createQuery(
-            "SELECT c FROM " + CODE_TABLE_NAME + " c WHERE c.code = '" + code + "'", 
-            ServerAuthorizationCodeGrant.class);
-    }
     protected TypedQuery<ServerAuthorizationCodeGrant> getCodesQuery(Client c, UserSubject resourceOwnerSubject) {
         if (c == null && resourceOwnerSubject == null) {
             return getEntityManager().createQuery("SELECT c FROM " + CODE_TABLE_NAME + " c", 

http://git-wip-us.apache.org/repos/asf/cxf/blob/74b0254f/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java
index e5cbdc6..c552592 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java
@@ -22,7 +22,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
 import javax.persistence.TypedQuery;
 
 import org.apache.cxf.rs.security.oauth2.common.Client;
@@ -43,23 +42,21 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
     
     @Override
     public Client getClient(String clientId) throws OAuthServiceException {
-        try {
-            return getClientQuery(clientId).getSingleResult();
-        } catch (NoResultException ex) {
-            return null;
-        }
+        return getEntityManager().find(Client.class, clientId);
     }
     
     public void setClient(Client client) {
+        getEntityManager().getTransaction().begin();
         if (client.getResourceOwnerSubject() != null) {
             UserSubject sub = getEntityManager().find(UserSubject.class, client.getResourceOwnerSubject().getLogin());
             if (sub == null) {
-                persistEntity(client.getResourceOwnerSubject());
+                getEntityManager().persist(client.getResourceOwnerSubject());
             } else {
                 client.setResourceOwnerSubject(sub);
             }
         }
-        persistEntity(client);
+        getEntityManager().persist(client);
+        getEntityManager().getTransaction().commit();
     }
     
     @Override
@@ -84,11 +81,7 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
     
     @Override
     public ServerAccessToken getAccessToken(String accessToken) throws OAuthServiceException {
-        try {
-            return getTokenQuery(accessToken).getSingleResult();
-        } catch (NoResultException ex) {
-            return null;
-        }
+        return getEntityManager().find(BearerAccessToken.class, accessToken);
     }
     @Override
     protected void doRevokeAccessToken(ServerAccessToken at) {
@@ -96,11 +89,7 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
     }
     @Override
     protected RefreshToken getRefreshToken(String refreshTokenKey) { 
-        try {
-            return getRefreshTokenQuery(refreshTokenKey).getSingleResult();
-        } catch (NoResultException ex) {
-            return null;
-        }
+        return getEntityManager().find(RefreshToken.class, refreshTokenKey);
     }
     @Override
     protected void doRevokeRefreshToken(RefreshToken rt) { 
@@ -108,13 +97,14 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
     }
     
     protected void saveAccessToken(ServerAccessToken serverToken) {
+        getEntityManager().getTransaction().begin();
         List<OAuthPermission> perms = new LinkedList<OAuthPermission>();
         for (OAuthPermission perm : serverToken.getScopes()) {
             OAuthPermission permSaved = getEntityManager().find(OAuthPermission.class, perm.getPermission());
             if (permSaved != null) {
                 perms.add(permSaved);
             } else {
-                persistEntity(perm);
+                getEntityManager().persist(perm);
                 perms.add(perm);
             }
         }
@@ -122,15 +112,14 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
         
         UserSubject sub = getEntityManager().find(UserSubject.class, serverToken.getSubject().getLogin());
         if (sub == null) {
-            persistEntity(serverToken.getSubject());
+            getEntityManager().persist(serverToken.getSubject());
         } else {
-            entityManager.getTransaction().begin();
-            sub = entityManager.merge(serverToken.getSubject());
-            entityManager.getTransaction().commit();
+            sub = getEntityManager().merge(serverToken.getSubject());
             serverToken.setSubject(sub);
         }
         
-        persistEntity(serverToken);
+        getEntityManager().persist(serverToken);
+        getEntityManager().getTransaction().commit();
     }
     
     protected void saveRefreshToken(RefreshToken refreshToken) {
@@ -146,10 +135,6 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
         entityManager.remove(entity);
         entityManager.getTransaction().commit();
     }
-    protected TypedQuery<Client> getClientQuery(String clientId) {
-        return entityManager.createQuery(
-            "SELECT c FROM " + CLIENT_TABLE_NAME + " c WHERE c.clientId = '" + clientId + "'", Client.class);
-    }
     protected TypedQuery<Client> getClientsQuery(UserSubject resourceOwnerSubject) {
         if (resourceOwnerSubject == null) {
             return entityManager.createQuery("SELECT c FROM " + CLIENT_TABLE_NAME + " c", Client.class);
@@ -159,11 +144,6 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
                 + resourceOwnerSubject.getLogin() + "'", Client.class);
         }
     }
-    protected TypedQuery<BearerAccessToken> getTokenQuery(String tokenKey) {
-        return entityManager.createQuery(
-            "SELECT t FROM " + BEARER_TOKEN_TABLE_NAME + " t WHERE t.tokenKey = '" + tokenKey + "'", 
-            BearerAccessToken.class);
-    }
     protected TypedQuery<ServerAccessToken> getTokensQuery(Client c, UserSubject resourceOwnerSubject) {
         if (c == null && resourceOwnerSubject == null) {
             return entityManager.createQuery("SELECT t FROM " + BEARER_TOKEN_TABLE_NAME + " t", 
@@ -183,11 +163,6 @@ public class JPAOAuthDataProvider extends AbstractOAuthDataProvider {
                 ServerAccessToken.class);
         }
     }
-    protected TypedQuery<RefreshToken> getRefreshTokenQuery(String tokenKey) {
-        return entityManager.createQuery(
-            "SELECT t FROM " + REFRESH_TOKEN_TABLE_NAME + " t WHERE t.tokenKey = '" + tokenKey + "'", 
-            RefreshToken.class);
-    }
     protected TypedQuery<RefreshToken> getRefreshTokensQuery(Client c, UserSubject resourceOwnerSubject) {
         if (c == null && resourceOwnerSubject == null) {
             return entityManager.createQuery("SELECT t FROM " + REFRESH_TOKEN_TABLE_NAME + " t", 

http://git-wip-us.apache.org/repos/asf/cxf/blob/74b0254f/rt/rs/security/sso/oidc/pom.xml
----------------------------------------------------------------------
diff --git a/rt/rs/security/sso/oidc/pom.xml b/rt/rs/security/sso/oidc/pom.xml
index c271cd3..b5dcec2 100644
--- a/rt/rs/security/sso/oidc/pom.xml
+++ b/rt/rs/security/sso/oidc/pom.xml
@@ -75,7 +75,7 @@
              <groupId>org.apache.openjpa</groupId>
              <artifactId>openjpa</artifactId>
              <version>${openjpa.version}</version>
-             <scope>test</scope>
+             <scope>provided</scope>
         </dependency>
         -->
         <dependency>