@Nullable protected RememberMeToken loadRememberMeToken(User user, String rememberMeToken) { EntityManager em = persistence.getEntityManager(); TypedQuery<RememberMeToken> query = em.createQuery( "select rt from sec$RememberMeToken rt where rt.token = :token and rt.user.id = :userId", RememberMeToken.class); query.setParameter("token", rememberMeToken); query.setParameter("userId", user.getId()); return query.getFirstResult(); }
@Nullable protected String getAccessTokenValueByRefreshTokenValueFromDatabase(String refreshTokenValue) { String accessTokenValue; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessTokenValue = em.createQuery("select e.tokenValue from sys$AccessToken e where e.refreshTokenValue = :refreshTokenValue", String.class) .setParameter("refreshTokenValue", refreshTokenValue) .getFirstResult(); tx.commit(); return accessTokenValue; } }
@Nullable protected AccessToken getAccessTokenByTokenValueFromDatabase(String accessTokenValue) { AccessToken accessToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessToken = em.createQuery("select e from sys$AccessToken e where e.tokenValue = :tokenValue", AccessToken.class) .setParameter("tokenValue", accessTokenValue) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return accessToken; } }
protected User findUser(EntityManager em) { UUID currentUserId = auditInfoProvider.getCurrentUserId(); if (AppContext.isStarted() && currentUserId != null) return em.getReference(User.class, currentUserId); else { String login = serverConfig.getJmxUserLogin(); TypedQuery<User> query = em.createQuery("select u from sec$User u where u.loginLowerCase = ?1", User.class); query.setParameter(1, login); User user = query.getFirstResult(); if (user != null) return user; else throw new RuntimeException("The user '" + login + "' specified in cuba.jmxUserLogin does not exist"); } }
@Nullable protected RefreshToken getRefreshTokenByTokenValueFromDatabase(String refreshTokenValue) { RefreshToken refreshToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); refreshToken = em.createQuery("select e from sys$RefreshToken e where e.tokenValue = :tokenValue", RefreshToken.class) .setParameter("tokenValue", refreshTokenValue) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return refreshToken; } }
@Nullable protected AccessToken getAccessTokenByAuthenticationKeyFromDatabase(String authenticationKey) { AccessToken accessToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessToken = em.createQuery("select e from sys$AccessToken e where e.authenticationKey = :authenticationKey", AccessToken.class) .setParameter("authenticationKey", authenticationKey) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return accessToken; } }
@Override public EntitySnapshot getLastEntitySnapshot(MetaClass metaClass, Object referenceId) { if (referenceId instanceof Entity) { throw new IllegalArgumentException(format("Reference id can not be an entity: %s", referenceId.getClass())); } MetaClass originalMetaClass = extendedEntities.getOriginalOrThisMetaClass(metaClass); View view = metadata.getViewRepository().getView(EntitySnapshot.class, "entitySnapshot.browse"); Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); TypedQuery<EntitySnapshot> query = em.createQuery( format("select e from sys$EntitySnapshot e where e.entityMetaClass = :metaClass and" + " e.entity.%s = :entityId order by e.snapshotDate desc", referenceToEntitySupport.getReferenceIdPropertyName(originalMetaClass)), EntitySnapshot.class) .setParameter("metaClass", originalMetaClass.getName()) .setParameter("entityId", referenceId) .setMaxResults(1) .setView(view); return query.getFirstResult(); } finally { tx.close(); } }
@Nullable protected UserSetting findUserSettings(ClientType clientType, String name) { EntityManager em = persistence.getEntityManager(); TypedQuery<UserSetting> q = em.createQuery( "select s from sec$UserSetting s where s.user.id = ?1 and s.name =?2 and s.clientType = ?3", UserSetting.class); q.setParameter(1, userSessionSource.getUserSession().getUser().getId()); q.setParameter(2, name); q.setParameter(3, clientType == null ? null : clientType.getId()); return q.getFirstResult(); }