diff --git a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/ExtendApiAuthorizeEndpoint.java b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/ExtendApiAuthorizeEndpoint.java index f43c6efa..a2e36e1f 100644 --- a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/ExtendApiAuthorizeEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/ExtendApiAuthorizeEndpoint.java @@ -26,6 +26,7 @@ import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; import org.maxkey.constants.Boolean; import org.maxkey.entity.Accounts; +import org.maxkey.entity.UserInfo; import org.maxkey.entity.apps.Apps; import org.maxkey.util.Instance; import org.maxkey.web.WebContext; @@ -55,21 +56,46 @@ public class ExtendApiAuthorizeEndpoint extends AuthorizeBaseEndpoint{ ModelAndView modelAndView=new ModelAndView("authorize/redirect_sso_submit"); Apps apps=getApp(id); _logger.debug(""+apps); + UserInfo userInfo = WebContext.getUserInfo(); if(Boolean.isTrue(apps.getIsAdapter())){ - Accounts appUser=getAccounts(apps); - if(appUser == null){ - return generateInitCredentialModelAndView(id,"/authorize/api/"+id); - } - AbstractAuthorizeAdapter adapter =(AbstractAuthorizeAdapter)Instance.newInstance(apps.getAdapter()); - - apps.setAppUser(appUser); + String username =""; + String password =""; + if(apps.getCredential()==1) { + if(apps.getSystemUserAttr().equalsIgnoreCase("uid")) { + username = userInfo.getId(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("username")) { + username = userInfo.getUsername(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("email")) { + username = userInfo.getEmail(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("employeeNumber")) { + username = userInfo.getEmployeeNumber(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("windowsaccount")) { + username = userInfo.getWindowsAccount(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("mobile")) { + username = userInfo.getMobile(); + }else if(apps.getSystemUserAttr().equalsIgnoreCase("workEmail")) { + username = userInfo.getWorkEmail(); + }else { + username = userInfo.getEmail(); + } + + } else if(apps.getCredential()==2) { + username = apps.getSharedUsername(); + password = apps.getSharedPassword(); + }else if(apps.getCredential()==3) { + Accounts appUser=getAccounts(apps); + if(appUser == null){ + return generateInitCredentialModelAndView(id,"/authorize/api/"+id); + } + apps.setAppUser(appUser); + } modelAndView=adapter.authorize( WebContext.getUserInfo(), apps, - appUser.getRelatedUsername()+"."+appUser.getRelatedPassword(), + username+"="+password, modelAndView); return modelAndView; }else{ diff --git a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java index 13881eff..f75ab77c 100644 --- a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java +++ b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java @@ -58,6 +58,8 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter { HttpsTrusts.beforeConnection(); Apps details=(Apps)app; + String username = data.substring(0, data.indexOf("=")); + String password = data.substring(data.indexOf("=") + 1); //extraAttrs from Applications ExtraAttrs extraAttrs=null; if(details.getIsExtendAttr()==1){ @@ -69,7 +71,7 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter { _logger.debug(""+token); OAuthClient authkeyRestClient=new OAuthClient( - String.format(AUTHKEY_URI,token.getAccess_token(),details.getAppUser().getRelatedUsername())); + String.format(AUTHKEY_URI,token.getAccess_token(),username)); HashMap authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class); _logger.debug("authKey : "+authKey); diff --git a/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl index bb1a9779..189414d4 100644 --- a/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl +++ b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl @@ -5,13 +5,13 @@ <#include "authorize_common.ftl"> -
+