Fix JPA issues to allow using Hibernate

pull/1122/merge
Mikko Tommila 2015-10-23 15:03:01 +03:00 committed by Justin Richer
parent 375a5f2e47
commit 4f4c8de1c8
4 changed files with 31 additions and 53 deletions

View File

@ -66,7 +66,7 @@ public class AuthenticationHolderEntity {
private SavedUserAuthentication userAuth; private SavedUserAuthentication userAuth;
private Collection<? extends GrantedAuthority> authorities; private Collection<GrantedAuthority> authorities;
private Set<String> resourceIds; private Set<String> resourceIds;
@ -116,14 +116,14 @@ public class AuthenticationHolderEntity {
// pull apart the request and save its bits // pull apart the request and save its bits
OAuth2Request o2Request = authentication.getOAuth2Request(); OAuth2Request o2Request = authentication.getOAuth2Request();
setAuthorities(o2Request.getAuthorities()); setAuthorities(o2Request.getAuthorities() == null ? null : new HashSet<>(o2Request.getAuthorities()));
setClientId(o2Request.getClientId()); setClientId(o2Request.getClientId());
setExtensions(o2Request.getExtensions()); setExtensions(o2Request.getExtensions() == null ? null : new HashMap<>(o2Request.getExtensions()));
setRedirectUri(o2Request.getRedirectUri()); setRedirectUri(o2Request.getRedirectUri());
setRequestParameters(o2Request.getRequestParameters()); setRequestParameters(o2Request.getRequestParameters() == null ? null : new HashMap<>(o2Request.getRequestParameters()));
setResourceIds(o2Request.getResourceIds()); setResourceIds(o2Request.getResourceIds() == null ? null : new HashSet<>(o2Request.getResourceIds()));
setResponseTypes(o2Request.getResponseTypes()); setResponseTypes(o2Request.getResponseTypes() == null ? null : new HashSet<>(o2Request.getResponseTypes()));
setScope(o2Request.getScope()); setScope(o2Request.getScope() == null ? null : new HashSet<>(o2Request.getScope()));
setApproved(o2Request.isApproved()); setApproved(o2Request.isApproved());
if (authentication.getUserAuthentication() != null) { if (authentication.getUserAuthentication() != null) {
@ -159,19 +159,15 @@ public class AuthenticationHolderEntity {
) )
@Convert(converter = SimpleGrantedAuthorityStringConverter.class) @Convert(converter = SimpleGrantedAuthorityStringConverter.class)
@Column(name="authority") @Column(name="authority")
public Collection<? extends GrantedAuthority> getAuthorities() { public Collection<GrantedAuthority> getAuthorities() {
return authorities; return authorities;
} }
/** /**
* @param authorities the authorities to set * @param authorities the authorities to set
*/ */
public void setAuthorities(Collection<? extends GrantedAuthority> authorities) { public void setAuthorities(Collection<GrantedAuthority> authorities) {
if (authorities != null) { this.authorities = authorities;
this.authorities = new HashSet<>(authorities);
} else {
this.authorities = null;
}
} }
/** /**
@ -191,11 +187,7 @@ public class AuthenticationHolderEntity {
* @param resourceIds the resourceIds to set * @param resourceIds the resourceIds to set
*/ */
public void setResourceIds(Set<String> resourceIds) { public void setResourceIds(Set<String> resourceIds) {
if (resourceIds != null) { this.resourceIds = resourceIds;
this.resourceIds = new HashSet<>(resourceIds);
} else {
this.resourceIds = null;
}
} }
/** /**
@ -247,11 +239,7 @@ public class AuthenticationHolderEntity {
* @param responseTypes the responseTypes to set * @param responseTypes the responseTypes to set
*/ */
public void setResponseTypes(Set<String> responseTypes) { public void setResponseTypes(Set<String> responseTypes) {
if (responseTypes != null) { this.responseTypes = responseTypes;
this.responseTypes = new HashSet<>(responseTypes);
} else {
this.responseTypes = null;
}
} }
/** /**
@ -264,7 +252,7 @@ public class AuthenticationHolderEntity {
) )
@Column(name="val") @Column(name="val")
@MapKeyColumn(name="extension") @MapKeyColumn(name="extension")
@Convert(converter=SerializableStringConverter.class) @Convert(attributeName="value", converter=SerializableStringConverter.class)
public Map<String, Serializable> getExtensions() { public Map<String, Serializable> getExtensions() {
return extensions; return extensions;
} }
@ -273,11 +261,7 @@ public class AuthenticationHolderEntity {
* @param extensions the extensions to set * @param extensions the extensions to set
*/ */
public void setExtensions(Map<String, Serializable> extensions) { public void setExtensions(Map<String, Serializable> extensions) {
if (extensions != null) { this.extensions = extensions;
this.extensions = new HashMap<>(extensions);
} else {
this.extensions = null;
}
} }
/** /**
@ -313,11 +297,7 @@ public class AuthenticationHolderEntity {
* @param scope the scope to set * @param scope the scope to set
*/ */
public void setScope(Set<String> scope) { public void setScope(Set<String> scope) {
if (scope != null) { this.scope = scope;
this.scope = new HashSet<>(scope);
} else {
this.scope = null;
}
} }
/** /**
@ -338,11 +318,7 @@ public class AuthenticationHolderEntity {
* @param requestParameters the requestParameters to set * @param requestParameters the requestParameters to set
*/ */
public void setRequestParameters(Map<String, String> requestParameters) { public void setRequestParameters(Map<String, String> requestParameters) {
if (requestParameters != null) { this.requestParameters = requestParameters;
this.requestParameters = new HashMap<>(requestParameters);
} else {
this.requestParameters = null;
}
} }

View File

@ -265,7 +265,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
/** /**
* @return the idToken * @return the idToken
*/ */
@OneToOne(cascade=CascadeType.ALL) // one-to-one mapping for now @OneToOne(cascade=CascadeType.ALL, orphanRemoval=true) // one-to-one mapping for now
@JoinColumn(name = "id_token_id") @JoinColumn(name = "id_token_id")
public OAuth2AccessTokenEntity getIdToken() { public OAuth2AccessTokenEntity getIdToken() {
return idToken; return idToken;

View File

@ -54,7 +54,7 @@ public class SavedUserAuthentication implements Authentication {
private String name; private String name;
private Collection<? extends GrantedAuthority> authorities; private Collection<GrantedAuthority> authorities;
private boolean authenticated; private boolean authenticated;
@ -65,7 +65,7 @@ public class SavedUserAuthentication implements Authentication {
*/ */
public SavedUserAuthentication(Authentication src) { public SavedUserAuthentication(Authentication src) {
setName(src.getName()); setName(src.getName());
setAuthorities(src.getAuthorities()); setAuthorities(new HashSet<>(src.getAuthorities()));
setAuthenticated(src.isAuthenticated()); setAuthenticated(src.isAuthenticated());
if (src instanceof SavedUserAuthentication) { if (src instanceof SavedUserAuthentication) {
@ -115,7 +115,7 @@ public class SavedUserAuthentication implements Authentication {
) )
@Convert(converter = SimpleGrantedAuthorityStringConverter.class) @Convert(converter = SimpleGrantedAuthorityStringConverter.class)
@Column(name="authority") @Column(name="authority")
public Collection<? extends GrantedAuthority> getAuthorities() { public Collection<GrantedAuthority> getAuthorities() {
return authorities; return authorities;
} }
@ -175,12 +175,8 @@ public class SavedUserAuthentication implements Authentication {
/** /**
* @param authorities the authorities to set * @param authorities the authorities to set
*/ */
public void setAuthorities(Collection<? extends GrantedAuthority> authorities) { public void setAuthorities(Collection<GrantedAuthority> authorities) {
if (authorities != null) { this.authorities = authorities;
this.authorities = new HashSet<>(authorities);
} else {
this.authorities = null;
}
} }

View File

@ -97,7 +97,13 @@ public class JpaOAuth2TokenRepository implements OAuth2TokenRepository {
public void removeAccessToken(OAuth2AccessTokenEntity accessToken) { public void removeAccessToken(OAuth2AccessTokenEntity accessToken) {
OAuth2AccessTokenEntity found = getAccessTokenByValue(accessToken.getValue()); OAuth2AccessTokenEntity found = getAccessTokenByValue(accessToken.getValue());
if (found != null) { if (found != null) {
manager.remove(found); OAuth2AccessTokenEntity accessTokenForIdToken = getAccessTokenForIdToken(found);
if (accessTokenForIdToken != null) {
accessTokenForIdToken.setIdToken(null);
JpaUtil.saveOrUpdate(accessTokenForIdToken.getId(), manager, accessTokenForIdToken);
} else {
manager.remove(found);
}
} else { } else {
throw new IllegalArgumentException("Access token not found: " + accessToken); throw new IllegalArgumentException("Access token not found: " + accessToken);
} }
@ -231,7 +237,7 @@ public class JpaOAuth2TokenRepository implements OAuth2TokenRepository {
@Transactional(value="defaultTransactionManager") @Transactional(value="defaultTransactionManager")
public void clearDuplicateAccessTokens() { public void clearDuplicateAccessTokens() {
Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2AccessTokenEntity a GROUP BY a.jwt HAVING c > 1"); Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2AccessTokenEntity a GROUP BY a.jwt HAVING count(1) > 1");
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<Object[]> resultList = query.getResultList(); List<Object[]> resultList = query.getResultList();
List<JWT> values = new ArrayList<>(); List<JWT> values = new ArrayList<>();
@ -255,7 +261,7 @@ public class JpaOAuth2TokenRepository implements OAuth2TokenRepository {
@Override @Override
@Transactional(value="defaultTransactionManager") @Transactional(value="defaultTransactionManager")
public void clearDuplicateRefreshTokens() { public void clearDuplicateRefreshTokens() {
Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2RefreshTokenEntity a GROUP BY a.jwt HAVING c > 1"); Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2RefreshTokenEntity a GROUP BY a.jwt HAVING count(1) > 1");
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<Object[]> resultList = query.getResultList(); List<Object[]> resultList = query.getResultList();
List<JWT> values = new ArrayList<>(); List<JWT> values = new ArrayList<>();