Merge branch 'dev'

This commit is contained in:
yadong.zhang 2021-11-29 23:16:25 +08:00
commit 4285eb50aa
7 changed files with 39 additions and 15 deletions

View File

@ -1,3 +1,7 @@
## 1.0.7
- fix: Gitee Issue [#I4GV39](https://gitee.com/fujieid/jap/issues/I4GV39)
## v1.0.6 (2021-11-02) ## v1.0.6 (2021-11-02)
- feat: 正式支持 LDAP 中用户的登录认证 - feat: 正式支持 LDAP 中用户的登录认证

View File

@ -25,17 +25,27 @@ public enum Oauth2GrantType {
/** /**
* Authorization Code Grant * Authorization Code Grant
*/ */
AUTHORIZATION_CODE, AUTHORIZATION_CODE("authorization_code"),
/** /**
* Resource Owner Password Credentials Grant * Resource Owner Password Credentials Grant
*/ */
PASSWORD, PASSWORD("password"),
/** /**
* Client Credentials Grant * Client Credentials Grant
*/ */
CLIENT_CREDENTIALS, CLIENT_CREDENTIALS("client_credentials"),
/** /**
* Refreshing an Access Token * Refreshing an Access Token
*/ */
REFRESH_TOKEN REFRESH_TOKEN("refresh_token");
private final String type;
Oauth2GrantType(String type) {
this.type = type;
}
public String getType() {
return type;
}
} }

View File

@ -25,13 +25,23 @@ public enum Oauth2ResponseType {
/** /**
* When authorization code mode or implicit authorization mode is not used, ResponseType needs to be set to {@code none} * When authorization code mode or implicit authorization mode is not used, ResponseType needs to be set to {@code none}
*/ */
NONE, NONE("none"),
/** /**
* Authorization Code Grant * Authorization Code Grant
*/ */
CODE, CODE("code"),
/** /**
* Implicit Grant * Implicit Grant
*/ */
TOKEN TOKEN("token");
private final String type;
Oauth2ResponseType(String type) {
this.type = type;
}
public String getType() {
return type;
}
} }

View File

@ -244,7 +244,7 @@ public class Oauth2Strategy extends AbstractJapStrategy {
*/ */
private String generateAuthorizationCodeGrantUrl(OAuthConfig authConfig) { private String generateAuthorizationCodeGrantUrl(OAuthConfig authConfig) {
Map<String, Object> params = new HashMap<>(6); Map<String, Object> params = new HashMap<>(6);
params.put("response_type", authConfig.getResponseType()); params.put("response_type", authConfig.getResponseType().getType());
params.put("client_id", authConfig.getClientId()); params.put("client_id", authConfig.getClientId());
if (StrUtil.isNotBlank(authConfig.getCallbackUrl())) { if (StrUtil.isNotBlank(authConfig.getCallbackUrl())) {
params.put("redirect_uri", authConfig.getCallbackUrl()); params.put("redirect_uri", authConfig.getCallbackUrl());

View File

@ -138,7 +138,7 @@ public class Oauth2Util {
if (oAuthConfig.getResponseType() == Oauth2ResponseType.CODE) { if (oAuthConfig.getResponseType() == Oauth2ResponseType.CODE) {
if (oAuthConfig.getGrantType() != Oauth2GrantType.AUTHORIZATION_CODE) { if (oAuthConfig.getGrantType() != Oauth2GrantType.AUTHORIZATION_CODE) {
throw new JapOauth2Exception("Invalid grantType `" + oAuthConfig.getGrantType() + "`. " + throw new JapOauth2Exception("Invalid grantType `" + oAuthConfig.getGrantType().getType() + "`. " +
"When using authorization code mode, grantType must be `authorization_code`"); "When using authorization code mode, grantType must be `authorization_code`");
} }
@ -168,7 +168,7 @@ public class Oauth2Util {
else { else {
if (oAuthConfig.getGrantType() != Oauth2GrantType.PASSWORD && oAuthConfig.getGrantType() != Oauth2GrantType.CLIENT_CREDENTIALS) { if (oAuthConfig.getGrantType() != Oauth2GrantType.PASSWORD && oAuthConfig.getGrantType() != Oauth2GrantType.CLIENT_CREDENTIALS) {
throw new JapOauth2Exception("When the response type is none in the oauth2 strategy, a grant type other " + throw new JapOauth2Exception("When the response type is none in the oauth2 strategy, a grant type other " +
"than the authorization code must be used: " + oAuthConfig.getGrantType()); "than the authorization code must be used: " + oAuthConfig.getGrantType().getType());
} }
if (oAuthConfig.getGrantType() == Oauth2GrantType.PASSWORD) { if (oAuthConfig.getGrantType() == Oauth2GrantType.PASSWORD) {
if (!StrUtil.isAllNotEmpty(oAuthConfig.getUsername(), oAuthConfig.getPassword())) { if (!StrUtil.isAllNotEmpty(oAuthConfig.getUsername(), oAuthConfig.getPassword())) {

View File

@ -90,7 +90,7 @@ public class AccessTokenHelper {
String code = request.getParameter("code"); String code = request.getParameter("code");
Map<String, String> params = new HashMap<>(6); Map<String, String> params = new HashMap<>(6);
params.put("grant_type", Oauth2GrantType.AUTHORIZATION_CODE.name()); params.put("grant_type", Oauth2GrantType.AUTHORIZATION_CODE.getType());
params.put("code", code); params.put("code", code);
params.put("client_id", oAuthConfig.getClientId()); params.put("client_id", oAuthConfig.getClientId());
params.put("client_secret", oAuthConfig.getClientSecret()); params.put("client_secret", oAuthConfig.getClientSecret());
@ -148,7 +148,7 @@ public class AccessTokenHelper {
*/ */
private static AccessToken getAccessTokenOfPasswordMode(OAuthConfig oAuthConfig) throws JapOauth2Exception { private static AccessToken getAccessTokenOfPasswordMode(OAuthConfig oAuthConfig) throws JapOauth2Exception {
Map<String, String> params = new HashMap<>(6); Map<String, String> params = new HashMap<>(6);
params.put("grant_type", Oauth2GrantType.PASSWORD.name()); params.put("grant_type", Oauth2GrantType.PASSWORD.getType());
params.put("username", oAuthConfig.getUsername()); params.put("username", oAuthConfig.getUsername());
params.put("password", oAuthConfig.getPassword()); params.put("password", oAuthConfig.getPassword());
params.put("client_id", oAuthConfig.getClientId()); params.put("client_id", oAuthConfig.getClientId());
@ -175,7 +175,7 @@ public class AccessTokenHelper {
private static AccessToken getAccessTokenOfClientMode(JapHttpRequest request, OAuthConfig oAuthConfig) throws JapOauth2Exception { private static AccessToken getAccessTokenOfClientMode(JapHttpRequest request, OAuthConfig oAuthConfig) throws JapOauth2Exception {
throw new JapOauth2Exception("Oauth2Strategy failed to get AccessToken. Grant type of client_credentials type is not supported."); throw new JapOauth2Exception("Oauth2Strategy failed to get AccessToken. Grant type of client_credentials type is not supported.");
// Map<String, String> params = Maps.newHashMap(); // Map<String, String> params = Maps.newHashMap();
// params.put("grant_type", Oauth2GrantType.client_credentials.name()); // params.put("grant_type", Oauth2GrantType.CLIENT_CREDENTIALS.getType());
// if (ArrayUtil.isNotEmpty(oAuthConfig.getScopes())) { // if (ArrayUtil.isNotEmpty(oAuthConfig.getScopes())) {
// params.put("scope", String.join(Oauth2Const.SCOPE_SEPARATOR, oAuthConfig.getScopes())); // params.put("scope", String.join(Oauth2Const.SCOPE_SEPARATOR, oAuthConfig.getScopes()));
// } // }
@ -192,7 +192,7 @@ public class AccessTokenHelper {
private static AccessToken refreshToken(OAuthConfig oAuthConfig, String refreshToken) { private static AccessToken refreshToken(OAuthConfig oAuthConfig, String refreshToken) {
Map<String, String> params = new HashMap<>(6); Map<String, String> params = new HashMap<>(6);
params.put("grant_type", oAuthConfig.getGrantType().name()); params.put("grant_type", oAuthConfig.getGrantType().getType());
params.put("refresh_token", refreshToken); params.put("refresh_token", refreshToken);
if (ArrayUtil.isNotEmpty(oAuthConfig.getScopes())) { if (ArrayUtil.isNotEmpty(oAuthConfig.getScopes())) {

View File

@ -55,7 +55,7 @@
<properties> <properties>
<!-- jap version --> <!-- jap version -->
<revision>1.0.6</revision> <revision>1.0.7</revision>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- maven --> <!-- maven -->