coheigea commented on a change in pull request #534: cxf-rt-rs-security-oauth2:
fix 'Potential null dereference'
URL: https://github.com/apache/cxf/pull/534#discussion_r271702719
##########
File path:
rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/provider/JPAOAuthDataProvider.java
##########
@@ -324,56 +325,37 @@ public Void execute(EntityManager em) {
protected TypedQuery<BearerAccessToken> getTokensQuery(Client c,
UserSubject resourceOwnerSubject,
EntityManager
entityManager) {
- if (c == null && resourceOwnerSubject == null) {
- return entityManager.createQuery("SELECT t FROM BearerAccessToken
t", BearerAccessToken.class);
- } else if (c == null) {
- return entityManager.createQuery(
- "SELECT t FROM BearerAccessToken t"
- + " JOIN t.subject s"
- + " WHERE s.login = :login",
BearerAccessToken.class)
- .setParameter("login", resourceOwnerSubject.getLogin());
- } else if (resourceOwnerSubject == null) {
- return entityManager.createQuery(
- "SELECT t FROM BearerAccessToken t"
- + " JOIN t.client c"
- + " WHERE c.clientId = :clientId",
BearerAccessToken.class)
- .setParameter("clientId", c.getClientId());
- } else {
- return entityManager.createQuery(
- "SELECT t FROM BearerAccessToken t"
- + " JOIN t.subject s"
- + " JOIN t.client c"
- + " WHERE s.login = :login AND c.clientId =
:clientId", BearerAccessToken.class)
- .setParameter("login", resourceOwnerSubject.getLogin())
- .setParameter("clientId", c.getClientId());
- }
+ return getQuery("BearerAccessToken", c, resourceOwnerSubject,
entityManager, BearerAccessToken.class);
}
protected TypedQuery<RefreshToken> getRefreshTokensQuery(Client c,
UserSubject resourceOwnerSubject,
EntityManager
entityManager) {
- if (c == null && resourceOwnerSubject == null) {
- return entityManager.createQuery("SELECT t FROM RefreshToken t",
RefreshToken.class);
- } else if (c == null) {
- return entityManager.createQuery(
- "SELECT t FROM RefreshToken t"
- + " JOIN t.subject s"
- + " WHERE s.login = :login", RefreshToken.class)
- .setParameter("login", resourceOwnerSubject.getLogin());
- } else if (resourceOwnerSubject == null) {
- return entityManager.createQuery(
- "SELECT t FROM RefreshToken t"
- + " JOIN t.client c"
- + " WHERE c.clientId = :clientId",
RefreshToken.class)
- .setParameter("clientId", c.getClientId());
- } else {
- return entityManager.createQuery(
- "SELECT t FROM RefreshToken t"
- + " JOIN t.subject s"
- + " JOIN t.client c"
- + " WHERE s.login = :login AND c.clientId =
:clientId", RefreshToken.class)
- .setParameter("login", resourceOwnerSubject.getLogin())
- .setParameter("clientId", c.getClientId());
+ return getQuery("RefreshToken", c, resourceOwnerSubject,
entityManager, RefreshToken.class);
+ }
+
+ private <T> TypedQuery<T> getQuery(String table, Client c, UserSubject
resourceOwnerSubject,
+ EntityManager entityManager, Class<T> resultClass) {
+ StringBuilder query = new StringBuilder("SELECT t FROM
").append(table).append(" t");
+ Map<String, Object> paramaterMap = new HashMap<>();
Review comment:
"paramaterMap" -> "parameterMap"
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services