OAuth20 update clientSecret Fix

OAuth20 update  clientSecret Fix
This commit is contained in:
shimingxy
2020-06-05 15:22:08 +08:00
parent 173f5cdfb8
commit 4ab7dccca0
3 changed files with 555 additions and 578 deletions

View File

@@ -5,347 +5,322 @@ import javax.persistence.Table;
import org.maxkey.domain.apps.oauth2.provider.client.BaseClientDetails;
import org.springframework.util.StringUtils;
@Table(name = "APPS_OAUTH_CLIENT_DETAILS")
public class AppsOAuth20Details extends Apps {
/**
*
*/
private static final long serialVersionUID = 6786113671104069370L;
private String clientId;
private String clientSecret;
private String scope;
private String resourceIds;
private String authorizedGrantTypes;
private String registeredRedirectUris;
private String authorities;
private Integer accessTokenValiditySeconds;
private Integer refreshTokenValiditySeconds;
private String approvalPrompt;
// for OpenID Connect
private String idTokenSigningAlgorithm;
private String idTokenEncryptedAlgorithm;
private String idTokenEncryptionMethod;
private String userInfoSigningAlgorithm;
private String userInfoEncryptedAlgorithm;
private String userInfoEncryptionMethod;
private String jwksUri;
/**
*
*/
public AppsOAuth20Details() {
super();
}
/**
*
*/
public AppsOAuth20Details(Apps application, BaseClientDetails baseClientDetails) {
super();
this.id = application.getId();
this.setName(application.getName());
this.setLoginUrl(application.getLoginUrl());
this.setCategory(application.getCategory());
this.setProtocol(application.getProtocol());
this.setIcon(application.getIcon());
this.clientId = application.getId();
this.setSortIndex(application.getSortIndex());
this.setVendor(application.getVendor());
this.setVendorUrl(application.getVendorUrl());
this.clientSecret = baseClientDetails.getClientSecret();
this.scope = baseClientDetails.getScope().toString();
this.resourceIds = baseClientDetails.getResourceIds().toString();
this.authorizedGrantTypes = baseClientDetails.getAuthorizedGrantTypes().toString();
this.registeredRedirectUris = StringUtils
.collectionToCommaDelimitedString(baseClientDetails.getRegisteredRedirectUri());
this.authorities = baseClientDetails.getAuthorities().toString();
this.accessTokenValiditySeconds = baseClientDetails.getAccessTokenValiditySeconds();
this.refreshTokenValiditySeconds = baseClientDetails.getRefreshTokenValiditySeconds();
this.approvalPrompt = baseClientDetails.isAutoApprove("all") + "";
this.idTokenEncryptedAlgorithm = baseClientDetails.getIdTokenEncryptedAlgorithm();
this.idTokenEncryptionMethod = baseClientDetails.getIdTokenEncryptionMethod();
this.idTokenSigningAlgorithm = baseClientDetails.getIdTokenSigningAlgorithm();
this.userInfoEncryptedAlgorithm = baseClientDetails.getUserInfoEncryptedAlgorithm();
this.userInfoEncryptionMethod = baseClientDetails.getUserInfoEncryptionMethod();
this.userInfoSigningAlgorithm = baseClientDetails.getUserInfoSigningAlgorithm();
this.jwksUri = baseClientDetails.getJwksUri();
}
/**
* @return the clientId
*/
public String getClientId() {
return clientId;
}
/**
* @return the approvalPrompt
*/
public String getApprovalPrompt() {
return approvalPrompt;
}
/**
* @param approvalPrompt the approvalPrompt to set
*/
public void setApprovalPrompt(String approvalPrompt) {
this.approvalPrompt = approvalPrompt;
}
/**
* @param clientId the clientId to set
*/
public void setClientId(String clientId) {
this.clientId = clientId;
}
/**
* @return the clientSecret
*/
public String getClientSecret() {
return clientSecret;
}
/**
* @param clientSecret the clientSecret to set
*/
public void setClientSecret(String clientSecret) {
this.clientSecret = clientSecret;
}
/**
* @return the scope
*/
public String getScope() {
return scope;
}
/**
* @param scope the scope to set
*/
public void setScope(String scope) {
this.scope = scope;
}
/**
* @return the resourceIds
*/
public String getResourceIds() {
return resourceIds;
}
/**
* @param resourceIds the resourceIds to set
*/
public void setResourceIds(String resourceIds) {
this.resourceIds = resourceIds;
}
/**
* @return the authorizedGrantTypes
*/
public String getAuthorizedGrantTypes() {
return authorizedGrantTypes;
}
/**
* @param authorizedGrantTypes the authorizedGrantTypes to set
*/
public void setAuthorizedGrantTypes(String authorizedGrantTypes) {
this.authorizedGrantTypes = authorizedGrantTypes;
}
/**
* @return the registeredRedirectUris
*/
public String getRegisteredRedirectUris() {
return registeredRedirectUris;
}
/**
* @param registeredRedirectUris the registeredRedirectUris to set
*/
public void setRegisteredRedirectUris(String registeredRedirectUris) {
this.registeredRedirectUris = registeredRedirectUris;
}
/**
* @return the authorities
*/
public String getAuthorities() {
return authorities;
}
/**
* @param authorities the authorities to set
*/
public void setAuthorities(String authorities) {
this.authorities = authorities;
}
/**
* @return the accessTokenValiditySeconds
*/
public Integer getAccessTokenValiditySeconds() {
return accessTokenValiditySeconds;
}
/**
* @param accessTokenValiditySeconds the accessTokenValiditySeconds to set
*/
public void setAccessTokenValiditySeconds(Integer accessTokenValiditySeconds) {
this.accessTokenValiditySeconds = accessTokenValiditySeconds;
}
/**
* @return the refreshTokenValiditySeconds
*/
public Integer getRefreshTokenValiditySeconds() {
return refreshTokenValiditySeconds;
}
/**
* @param refreshTokenValiditySeconds the refreshTokenValiditySeconds to set
*/
public void setRefreshTokenValiditySeconds(Integer refreshTokenValiditySeconds) {
this.refreshTokenValiditySeconds = refreshTokenValiditySeconds;
}
public String getIdTokenSigningAlgorithm() {
return idTokenSigningAlgorithm;
}
public void setIdTokenSigningAlgorithm(String idTokenSigningAlgorithm) {
this.idTokenSigningAlgorithm = idTokenSigningAlgorithm;
}
public String getIdTokenEncryptedAlgorithm() {
return idTokenEncryptedAlgorithm;
}
public void setIdTokenEncryptedAlgorithm(String idTokenEncryptedAlgorithm) {
this.idTokenEncryptedAlgorithm = idTokenEncryptedAlgorithm;
}
public String getIdTokenEncryptionMethod() {
return idTokenEncryptionMethod;
}
public void setIdTokenEncryptionMethod(String idTokenEncryptionMethod) {
this.idTokenEncryptionMethod = idTokenEncryptionMethod;
}
public String getUserInfoSigningAlgorithm() {
return userInfoSigningAlgorithm;
}
public void setUserInfoSigningAlgorithm(String userInfoSigningAlgorithm) {
this.userInfoSigningAlgorithm = userInfoSigningAlgorithm;
}
public String getUserInfoEncryptedAlgorithm() {
return userInfoEncryptedAlgorithm;
}
public void setUserInfoEncryptedAlgorithm(String userInfoEncryptedAlgorithm) {
this.userInfoEncryptedAlgorithm = userInfoEncryptedAlgorithm;
}
public String getUserInfoEncryptionMethod() {
return userInfoEncryptionMethod;
}
public void setUserInfoEncryptionMethod(String userInfoEncryptionMethod) {
this.userInfoEncryptionMethod = userInfoEncryptionMethod;
}
public String getJwksUri() {
return jwksUri;
}
public void setJwksUri(String jwksUri) {
this.jwksUri = jwksUri;
}
public BaseClientDetails clientDetailsRowMapper() {
BaseClientDetails baseClientDetails = new BaseClientDetails(this.getId(), this.getId(), this.getScope(),
this.getAuthorizedGrantTypes(), "ROLE_CLIENT, ROLE_TRUSTED_CLIENT", this.getRegisteredRedirectUris());
baseClientDetails.setAccessTokenValiditySeconds(this.getAccessTokenValiditySeconds());
baseClientDetails.setRefreshTokenValiditySeconds(this.getRefreshTokenValiditySeconds());
baseClientDetails.setClientSecret(this.getClientSecret());
baseClientDetails.setAutoApproveScopes(baseClientDetails.getScope());
baseClientDetails.setIdTokenEncryptedAlgorithm(this.getIdTokenEncryptedAlgorithm());
baseClientDetails.setIdTokenEncryptionMethod(this.getIdTokenEncryptionMethod());
baseClientDetails.setIdTokenSigningAlgorithm(this.getIdTokenSigningAlgorithm());
baseClientDetails.setUserInfoEncryptedAlgorithm(this.getUserInfoEncryptedAlgorithm());
baseClientDetails.setUserInfoEncryptionMethod(this.getUserInfoEncryptionMethod());
baseClientDetails.setUserInfoSigningAlgorithm(this.getUserInfoSigningAlgorithm());
baseClientDetails.setJwksUri(this.getJwksUri());
return baseClientDetails;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "OAuth20Details [clientId=" + clientId + ", clientSecret=" + clientSecret + ", scope=" + scope
+ ", resourceIds=" + resourceIds + ", authorizedGrantTypes=" + authorizedGrantTypes
+ ", registeredRedirectUris=" + registeredRedirectUris + ", authorities=" + authorities
+ ", accessTokenValiditySeconds=" + accessTokenValiditySeconds + ", refreshTokenValiditySeconds="
+ refreshTokenValiditySeconds + "]";
}
@Table(name = "APPS_OAUTH_CLIENT_DETAILS")
public class AppsOAuth20Details extends Apps {
/**
*
*/
private static final long serialVersionUID = 6786113671104069370L;
private String clientId;
private String clientSecret;
private String scope ;
private String resourceIds ;
private String authorizedGrantTypes;
private String registeredRedirectUris;
private String authorities ;
private Integer accessTokenValiditySeconds;
private Integer refreshTokenValiditySeconds;
private String approvalPrompt;
//for OpenID Connect
private String idTokenSigningAlgorithm;
private String idTokenEncryptedAlgorithm;
private String idTokenEncryptionMethod;
private String userInfoSigningAlgorithm;
private String userInfoEncryptedAlgorithm;
private String userInfoEncryptionMethod;
private String jwksUri;
/**
*
*/
public AppsOAuth20Details() {
super();
}
/**
*
*/
public AppsOAuth20Details(Apps application,BaseClientDetails baseClientDetails) {
super();
this.id=application.getId();
this.setName(application.getName());
this.setLoginUrl(application.getLoginUrl());
this.setCategory(application.getCategory());
this.setProtocol(application.getProtocol());
this.setIcon(application.getIcon());
this.clientId=application.getId();
this.setSortIndex(application.getSortIndex());
this.setVendor(application.getVendor());
this.setVendorUrl(application.getVendorUrl());
this.clientSecret=baseClientDetails.getClientSecret();
this.scope=baseClientDetails.getScope().toString();
this.resourceIds=baseClientDetails.getResourceIds().toString();
this.authorizedGrantTypes=baseClientDetails.getAuthorizedGrantTypes().toString();
this.registeredRedirectUris=StringUtils.collectionToCommaDelimitedString(baseClientDetails.getRegisteredRedirectUri());
this.authorities=baseClientDetails.getAuthorities().toString();
this.accessTokenValiditySeconds=baseClientDetails.getAccessTokenValiditySeconds();
this.refreshTokenValiditySeconds=baseClientDetails.getRefreshTokenValiditySeconds();
this.approvalPrompt=baseClientDetails.isAutoApprove("all")+"";
this.idTokenEncryptedAlgorithm=baseClientDetails.getIdTokenEncryptedAlgorithm();
this.idTokenEncryptionMethod=baseClientDetails.getIdTokenEncryptionMethod();
this.idTokenSigningAlgorithm=baseClientDetails.getIdTokenSigningAlgorithm();
this.userInfoEncryptedAlgorithm=baseClientDetails.getUserInfoEncryptedAlgorithm();
this.userInfoEncryptionMethod=baseClientDetails.getUserInfoEncryptionMethod();
this.userInfoSigningAlgorithm=baseClientDetails.getUserInfoSigningAlgorithm();
this.jwksUri=baseClientDetails.getJwksUri();
}
/**
* @return the clientId
*/
public String getClientId() {
return clientId;
}
/**
* @return the approvalPrompt
*/
public String getApprovalPrompt() {
return approvalPrompt;
}
/**
* @param approvalPrompt the approvalPrompt to set
*/
public void setApprovalPrompt(String approvalPrompt) {
this.approvalPrompt = approvalPrompt;
}
/**
* @param clientId the clientId to set
*/
public void setClientId(String clientId) {
this.clientId = clientId;
}
/**
* @return the clientSecret
*/
public String getClientSecret() {
return clientSecret;
}
/**
* @param clientSecret the clientSecret to set
*/
public void setClientSecret(String clientSecret) {
this.clientSecret = clientSecret;
}
/**
* @return the scope
*/
public String getScope() {
return scope;
}
/**
* @param scope the scope to set
*/
public void setScope(String scope) {
this.scope = scope;
}
/**
* @return the resourceIds
*/
public String getResourceIds() {
return resourceIds;
}
/**
* @param resourceIds the resourceIds to set
*/
public void setResourceIds(String resourceIds) {
this.resourceIds = resourceIds;
}
/**
* @return the authorizedGrantTypes
*/
public String getAuthorizedGrantTypes() {
return authorizedGrantTypes;
}
/**
* @param authorizedGrantTypes the authorizedGrantTypes to set
*/
public void setAuthorizedGrantTypes(String authorizedGrantTypes) {
this.authorizedGrantTypes = authorizedGrantTypes;
}
/**
* @return the registeredRedirectUris
*/
public String getRegisteredRedirectUris() {
return registeredRedirectUris;
}
/**
* @param registeredRedirectUris the registeredRedirectUris to set
*/
public void setRegisteredRedirectUris(String registeredRedirectUris) {
this.registeredRedirectUris = registeredRedirectUris;
}
/**
* @return the authorities
*/
public String getAuthorities() {
return authorities;
}
/**
* @param authorities the authorities to set
*/
public void setAuthorities(String authorities) {
this.authorities = authorities;
}
/**
* @return the accessTokenValiditySeconds
*/
public Integer getAccessTokenValiditySeconds() {
return accessTokenValiditySeconds;
}
/**
* @param accessTokenValiditySeconds the accessTokenValiditySeconds to set
*/
public void setAccessTokenValiditySeconds(Integer accessTokenValiditySeconds) {
this.accessTokenValiditySeconds = accessTokenValiditySeconds;
}
/**
* @return the refreshTokenValiditySeconds
*/
public Integer getRefreshTokenValiditySeconds() {
return refreshTokenValiditySeconds;
}
/**
* @param refreshTokenValiditySeconds the refreshTokenValiditySeconds to set
*/
public void setRefreshTokenValiditySeconds(Integer refreshTokenValiditySeconds) {
this.refreshTokenValiditySeconds = refreshTokenValiditySeconds;
}
public String getIdTokenSigningAlgorithm() {
return idTokenSigningAlgorithm;
}
public void setIdTokenSigningAlgorithm(String idTokenSigningAlgorithm) {
this.idTokenSigningAlgorithm = idTokenSigningAlgorithm;
}
public String getIdTokenEncryptedAlgorithm() {
return idTokenEncryptedAlgorithm;
}
public void setIdTokenEncryptedAlgorithm(String idTokenEncryptedAlgorithm) {
this.idTokenEncryptedAlgorithm = idTokenEncryptedAlgorithm;
}
public String getIdTokenEncryptionMethod() {
return idTokenEncryptionMethod;
}
public void setIdTokenEncryptionMethod(String idTokenEncryptionMethod) {
this.idTokenEncryptionMethod = idTokenEncryptionMethod;
}
public String getUserInfoSigningAlgorithm() {
return userInfoSigningAlgorithm;
}
public void setUserInfoSigningAlgorithm(String userInfoSigningAlgorithm) {
this.userInfoSigningAlgorithm = userInfoSigningAlgorithm;
}
public String getUserInfoEncryptedAlgorithm() {
return userInfoEncryptedAlgorithm;
}
public void setUserInfoEncryptedAlgorithm(String userInfoEncryptedAlgorithm) {
this.userInfoEncryptedAlgorithm = userInfoEncryptedAlgorithm;
}
public String getUserInfoEncryptionMethod() {
return userInfoEncryptionMethod;
}
public void setUserInfoEncryptionMethod(String userInfoEncryptionMethod) {
this.userInfoEncryptionMethod = userInfoEncryptionMethod;
}
public String getJwksUri() {
return jwksUri;
}
public void setJwksUri(String jwksUri) {
this.jwksUri = jwksUri;
}
public BaseClientDetails clientDetailsRowMapper(){
BaseClientDetails baseClientDetails =new BaseClientDetails( this.getId(),
this.getId(), this.getScope(), this.getAuthorizedGrantTypes(), "ROLE_CLIENT, ROLE_TRUSTED_CLIENT",
this.getRegisteredRedirectUris());
baseClientDetails.setAccessTokenValiditySeconds(this.getAccessTokenValiditySeconds());
baseClientDetails.setRefreshTokenValiditySeconds(this.getRefreshTokenValiditySeconds());
baseClientDetails.setClientSecret(this.getClientSecret());
baseClientDetails.setAutoApproveScopes(baseClientDetails.getScope());
baseClientDetails.setIdTokenEncryptedAlgorithm(this.getIdTokenEncryptedAlgorithm());
baseClientDetails.setIdTokenEncryptionMethod(this.getIdTokenEncryptionMethod());
baseClientDetails.setIdTokenSigningAlgorithm(this.getIdTokenSigningAlgorithm());
baseClientDetails.setUserInfoEncryptedAlgorithm(this.getUserInfoEncryptedAlgorithm());
baseClientDetails.setUserInfoEncryptionMethod(this.getUserInfoEncryptionMethod());
baseClientDetails.setUserInfoSigningAlgorithm(this.getUserInfoSigningAlgorithm());
baseClientDetails.setJwksUri(this.getJwksUri());
return baseClientDetails;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "OAuth20Details [clientId=" + clientId + ", clientSecret="
+ clientSecret + ", scope=" + scope + ", resourceIds="
+ resourceIds + ", authorizedGrantTypes="
+ authorizedGrantTypes + ", registeredRedirectUris="
+ registeredRedirectUris + ", authorities=" + authorities
+ ", accessTokenValiditySeconds=" + accessTokenValiditySeconds
+ ", refreshTokenValiditySeconds="
+ refreshTokenValiditySeconds + "]";
}
}