From e2e58ac7b83e62eaf6d375625f01b4a6ad5aebc4 Mon Sep 17 00:00:00 2001 From: "Crystal.Sea" Date: Tue, 1 Sep 2020 23:49:17 +0800 Subject: [PATCH] v 2.2.0 RC2 --- ReleaseNotes.txt | 4 +++- .../org/maxkey/domain/apps/AppsOAuth20Details.java | 2 ++ .../domain/apps/oauth2/provider/ClientDetails.java | 2 ++ .../oauth2/provider/client/BaseClientDetails.java | 13 ++++++++++++- .../provider/client/JdbcClientDetailsService.java | 10 +++++----- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index 367c84e23..6423833e8 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -13,7 +13,9 @@ *(MAXKEY-200812) MGT管理密码修改增加自动密码生成 *(MAXKEY-200813) 优化TOKENBASED令牌内容的配置 *(MAXKEY-200814) 修复初始化密码和密码过期修改后错误问题 - *(MAXKEY-200715) 依赖jar升级 + *(MAXKEY-200815) 修复OAuth 2.0管理端的跳过确认提示不能修改 + *(MAXKEY-200816) 应用管理修改时关闭修正 + *(MAXKEY-200817) 依赖jar升级 passay 1.6.0 springBoot 2.3.3.RELEASE springSecurity 5.3.4.RELEASE diff --git a/maxkey-core/src/main/java/org/maxkey/domain/apps/AppsOAuth20Details.java b/maxkey-core/src/main/java/org/maxkey/domain/apps/AppsOAuth20Details.java index 0399feff3..d41541ff9 100644 --- a/maxkey-core/src/main/java/org/maxkey/domain/apps/AppsOAuth20Details.java +++ b/maxkey-core/src/main/java/org/maxkey/domain/apps/AppsOAuth20Details.java @@ -106,6 +106,7 @@ public class AppsOAuth20Details extends Apps { this.userInfoSigningAlgorithm = baseClientDetails.getUserInfoSigningAlgorithm(); this.jwksUri = baseClientDetails.getJwksUri(); + this.approvalPrompt = baseClientDetails.getApprovalPrompt(); } @@ -322,6 +323,7 @@ public class AppsOAuth20Details extends Apps { baseClientDetails.setUserInfoSigningAlgorithm(this.getUserInfoSigningAlgorithm()); baseClientDetails.setJwksUri(this.getJwksUri()); + baseClientDetails.setApprovalPrompt(this.getApprovalPrompt()); return baseClientDetails; } diff --git a/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/ClientDetails.java b/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/ClientDetails.java index a9f4928a6..f40158ecc 100644 --- a/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/ClientDetails.java +++ b/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/ClientDetails.java @@ -145,5 +145,7 @@ public interface ClientDetails extends Serializable { public String getUserInfoEncryptionMethod(); public String getJwksUri(); + + public String getApprovalPrompt(); } diff --git a/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/client/BaseClientDetails.java b/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/client/BaseClientDetails.java index d7665b5a1..57cbb4864 100644 --- a/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/client/BaseClientDetails.java +++ b/maxkey-core/src/main/java/org/maxkey/domain/apps/oauth2/provider/client/BaseClientDetails.java @@ -92,6 +92,8 @@ public class BaseClientDetails implements ClientDetails { private String jwksUri; + private String approvalPrompt; + public BaseClientDetails() { } @@ -360,7 +362,16 @@ public class BaseClientDetails implements ClientDetails { this.jwksUri = jwksUri; } - @Override + + public String getApprovalPrompt() { + return approvalPrompt; + } + + public void setApprovalPrompt(String approvalPrompt) { + this.approvalPrompt = approvalPrompt; + } + + @Override public int hashCode() { final int prime = 31; int result = 1; diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/client/JdbcClientDetailsService.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/client/JdbcClientDetailsService.java index b93c2f55e..350f2c3f8 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/client/JdbcClientDetailsService.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/client/JdbcClientDetailsService.java @@ -47,8 +47,6 @@ import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; -import com.fasterxml.jackson.databind.ObjectMapper; - /** * Basic, JDBC implementation of the client details service. */ @@ -60,7 +58,7 @@ public class JdbcClientDetailsService implements ClientDetailsService, ClientReg private static final String CLIENT_FIELDS_FOR_UPDATE = "RESOURCE_IDS, SCOPE, " + "AUTHORIZED_GRANT_TYPES, WEB_SERVER_REDIRECT_URI, AUTHORITIES, ACCESS_TOKEN_VALIDITY, " - + "REFRESH_TOKEN_VALIDITY, ADDITIONAL_INFORMATION, AUTOAPPROVE, " + + "REFRESH_TOKEN_VALIDITY, ADDITIONAL_INFORMATION, AUTOAPPROVE, APPROVALPROMPT , " + "IDTOKENSIGNINGALGORITHM, IDTOKENENCRYPTEDALGORITHM, IDTOKENENCRYPTIONMETHOD, " + "USERINFOSIGNINGALGORITHM, USERINFOCRYPTEDALGORITHM, USERINFOENCRYPTIONMETHOD, JWKSURI"; @@ -74,7 +72,7 @@ public class JdbcClientDetailsService implements ClientDetailsService, ClientReg private static final String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + " where client_id = ?"; private static final String DEFAULT_INSERT_STATEMENT = "insert into mxk_apps_oauth_client_details (" + CLIENT_FIELDS - + ", client_id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + + ", client_id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; private static final String DEFAULT_UPDATE_STATEMENT = "update mxk_apps_oauth_client_details " + "set " + CLIENT_FIELDS_FOR_UPDATE.replaceAll(", ", "=?, ") + "=? where client_id = ?"; @@ -194,7 +192,8 @@ public class JdbcClientDetailsService implements ClientDetailsService, ClientReg ? StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorities()) : null, clientDetails.getAccessTokenValiditySeconds(), clientDetails.getRefreshTokenValiditySeconds(), json, - getAutoApproveScopes(clientDetails), clientDetails.getIdTokenSigningAlgorithm(), + getAutoApproveScopes(clientDetails),clientDetails.getApprovalPrompt(), + clientDetails.getIdTokenSigningAlgorithm(), clientDetails.getIdTokenEncryptedAlgorithm(), clientDetails.getIdTokenEncryptionMethod(), clientDetails.getUserInfoSigningAlgorithm(), clientDetails.getUserInfoEncryptedAlgorithm(), clientDetails.getUserInfoEncryptionMethod(), clientDetails.getJwksUri(), clientDetails.getClientId() }; @@ -279,6 +278,7 @@ public class JdbcClientDetailsService implements ClientDetailsService, ClientReg details.setUserInfoEncryptionMethod(rs.getString("USERINFOENCRYPTIONMETHOD")); details.setUserInfoSigningAlgorithm(rs.getString("USERINFOSIGNINGALGORITHM")); details.setJwksUri(rs.getString("JWKSURI")); + details.setApprovalPrompt(rs.getString("APPROVALPROMPT")); String json = rs.getString(10); if (json != null) {