Minor update to JPACodeDataProvider
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d5d9c6c5 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d5d9c6c5 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d5d9c6c5 Branch: refs/heads/master-jaxrs-2.1 Commit: d5d9c6c55d26d0e60f13240312f2c39b0481320d Parents: ea6a524 Author: Sergey Beryozkin <[email protected]> Authored: Thu Apr 21 13:09:42 2016 +0100 Committer: Sergey Beryozkin <[email protected]> Committed: Thu Apr 21 13:09:42 2016 +0100 ---------------------------------------------------------------------- .../oauth2/grants/code/JPACodeDataProvider.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/d5d9c6c5/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 c122f34..d6d759c 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 @@ -44,7 +44,17 @@ public class JPACodeDataProvider extends JPAOAuthDataProvider implements Authori } protected void saveCodeGrant(ServerAuthorizationCodeGrant grant) { - persistEntity(grant); + getEntityManager().getTransaction().begin(); + if (grant.getSubject() != null) { + UserSubject sub = getEntityManager().find(UserSubject.class, grant.getSubject().getLogin()); + if (sub == null) { + getEntityManager().persist(grant.getSubject()); + } else { + grant.setSubject(sub); + } + } + getEntityManager().persist(grant); + getEntityManager().getTransaction().commit(); } @Override
