Fix JPA issues to allow using Hibernate
parent
375a5f2e47
commit
4f4c8de1c8
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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<>();
|
||||||
|
|
Loading…
Reference in New Issue