diff --git a/maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java b/maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java index 5d8a72240..29f8c7867 100644 --- a/maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java +++ b/maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java @@ -47,6 +47,8 @@ public class AppsFormBasedDetails extends Apps { @Column private String passwordMapping; @Column + private String passwordAlgorithm; + @Column private String authorizeView; @@ -123,7 +125,17 @@ public class AppsFormBasedDetails extends Apps { } - @Override + public String getPasswordAlgorithm() { + return passwordAlgorithm; + } + + + public void setPasswordAlgorithm(String passwordAlgorithm) { + this.passwordAlgorithm = passwordAlgorithm; + } + + + @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("AppsFormBasedDetails [id="); diff --git a/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedDefaultAdapter.java b/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedDefaultAdapter.java index 1bb6798c3..4262786c2 100644 --- a/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedDefaultAdapter.java +++ b/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedDefaultAdapter.java @@ -17,6 +17,8 @@ package org.maxkey.authz.formbased.endpoint.adapter; +import java.time.Instant; + import org.maxkey.authn.SigninPrincipal; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; import org.maxkey.constants.Boolean; @@ -43,35 +45,31 @@ public class FormBasedDefaultAdapter extends AbstractAuthorizeAdapter { modelAndView.setViewName("authorize/formbased_sso_submint"); AppsFormBasedDetails details=(AppsFormBasedDetails)app; - modelAndView.addObject("username", details.getAppUser().getRelatedUsername()); - modelAndView.addObject("password", details.getAppUser().getRelatedPassword()); - - if(Boolean.isTrue(details.getIsExtendAttr())){ - modelAndView.addObject("extendAttr", details.getExtendAttr()); - modelAndView.addObject("isExtendAttr", true); - }else{ - modelAndView.addObject("isExtendAttr", false); - } - + String password = details.getAppUser().getRelatedPassword(); + if(null==details.getPasswordAlgorithm()||details.getPasswordAlgorithm().equals("")){ + }else if(details.getPasswordAlgorithm().indexOf("HEX")>-1){ + password = DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm().substring(0, details.getPasswordAlgorithm().indexOf("HEX"))); + }else{ + password = DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm()); + } + + modelAndView.addObject("id", details.getId()); modelAndView.addObject("action", details.getRedirectUri()); + modelAndView.addObject("redirectUri", details.getRedirectUri()); + modelAndView.addObject("loginUrl", details.getLoginUrl()); modelAndView.addObject("usernameMapping", details.getUsernameMapping()); - - String passwordAlgorithm=null; - String passwordMapping=details.getPasswordMapping(); - if(passwordMapping.indexOf(":")>-1){ - passwordAlgorithm=passwordMapping.substring(passwordMapping.indexOf(":")+1).toUpperCase(); - details.setPasswordMapping(passwordMapping.substring(0, passwordMapping.indexOf(":"))); - } modelAndView.addObject("passwordMapping", details.getPasswordMapping()); + modelAndView.addObject("username", details.getAppUser().getRelatedUsername()); + modelAndView.addObject("password", password); + modelAndView.addObject("timestamp", ""+Instant.now().getEpochSecond()); - if(null==passwordAlgorithm){ - modelAndView.addObject("password", details.getAppUser().getRelatedPassword()); - }else if(passwordAlgorithm.indexOf("HEX")>-1){ - modelAndView.addObject("password", DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),passwordAlgorithm.substring(0, passwordAlgorithm.indexOf("HEX")))); - }else{ - modelAndView.addObject("password", DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),passwordAlgorithm)); - } - + if(Boolean.isTrue(details.getIsExtendAttr())){ + modelAndView.addObject("extendAttr", details.getExtendAttr()); + modelAndView.addObject("isExtendAttr", true); + }else{ + modelAndView.addObject("isExtendAttr", false); + } + if(details.getAuthorizeView()!=null&&!details.getAuthorizeView().equals("")){ modelAndView.setViewName("authorize/"+details.getAuthorizeView()); } diff --git a/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedRedirectAdapter.java b/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedRedirectAdapter.java index df406fe1f..63d224914 100644 --- a/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedRedirectAdapter.java +++ b/maxkey-protocols/maxkey-protocol-formbased/src/main/java/org/maxkey/authz/formbased/endpoint/adapter/FormBasedRedirectAdapter.java @@ -17,6 +17,8 @@ package org.maxkey.authz.formbased.endpoint.adapter; +import java.time.Instant; + import org.maxkey.authn.SigninPrincipal; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; import org.maxkey.constants.Boolean; @@ -44,28 +46,23 @@ public class FormBasedRedirectAdapter extends AbstractAuthorizeAdapter { modelAndView.setViewName("authorize/formbased_redirect_submint"); AppsFormBasedDetails details=(AppsFormBasedDetails)app; + String password = details.getAppUser().getRelatedPassword(); + if(null==details.getPasswordAlgorithm()||details.getPasswordAlgorithm().equals("")){ + }else if(details.getPasswordAlgorithm().indexOf("HEX")>-1){ + password = DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm().substring(0, details.getPasswordAlgorithm().indexOf("HEX"))); + }else{ + password = DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm()); + } + modelAndView.addObject("id", details.getId()); modelAndView.addObject("action", details.getRedirectUri()); + modelAndView.addObject("redirectUri", details.getRedirectUri()); modelAndView.addObject("loginUrl", details.getLoginUrl()); modelAndView.addObject("usernameMapping", details.getUsernameMapping()); - - String passwordAlgorithm=null; - String passwordMapping=details.getPasswordMapping(); - if(passwordMapping.indexOf(":")>-1){ - passwordAlgorithm=passwordMapping.substring(passwordMapping.indexOf(":")+1).toUpperCase(); - details.setPasswordMapping(passwordMapping.substring(0, passwordMapping.indexOf(":"))); - } modelAndView.addObject("passwordMapping", details.getPasswordMapping()); - modelAndView.addObject("username", details.getAppUser().getRelatedUsername()); - if(null==passwordAlgorithm){ - modelAndView.addObject("password", details.getAppUser().getRelatedPassword()); - }else if(passwordAlgorithm.indexOf("HEX")>-1){ - modelAndView.addObject("password", DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),passwordAlgorithm.substring(0, passwordAlgorithm.indexOf("HEX")))); - }else{ - modelAndView.addObject("password", DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),passwordAlgorithm)); - } - + modelAndView.addObject("password", password); + modelAndView.addObject("timestamp", ""+Instant.now().getEpochSecond()); if(WebContext.getAttribute("formbased_redirect_submint")==null){ modelAndView.setViewName("authorize/formbased_redirect_submint"); diff --git a/maxkey-web-manage/src/main/resources/messages/message.properties b/maxkey-web-manage/src/main/resources/messages/message.properties index 9de4d158f..0025c51ce 100644 --- a/maxkey-web-manage/src/main/resources/messages/message.properties +++ b/maxkey-web-manage/src/main/resources/messages/message.properties @@ -320,6 +320,7 @@ apps.formbased.info=\u8868\u5355\u8ba4\u8bc1 apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740 apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04 apps.formbased.passwordMapping=\u767b\u5f55\u51ed\u8bc1\u6620\u5c04 +apps.formbased.passwordAlgorithm=\u5BC6\u7801\u7B97\u6CD5 apps.formbased.authorizeView=\u8ba4\u8bc1\u89c6\u56fe apps.formbased.parameter=\u53c2\u6570 apps.formbased.parameter.value=\u53c2\u6570\u503c diff --git a/maxkey-web-manage/src/main/resources/messages/message_en.properties b/maxkey-web-manage/src/main/resources/messages/message_en.properties index 900904a0c..9c53e349a 100644 --- a/maxkey-web-manage/src/main/resources/messages/message_en.properties +++ b/maxkey-web-manage/src/main/resources/messages/message_en.properties @@ -325,7 +325,10 @@ apps.formbased.info=formbased Info apps.formbased.redirectUri=redirectUri apps.formbased.usernameMapping=usernameMapping apps.formbased.passwordMapping=passwordMapping +apps.formbased.passwordAlgorithm=passwordAlgorithm apps.formbased.authorizeView=authorizeView +apps.formbased.parameter=parameter +apps.formbased.parameter.value=value #cas apps.cas.info=CAS Info diff --git a/maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties b/maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties index aafd4e2f0..2aab400e5 100644 --- a/maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties +++ b/maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties @@ -323,6 +323,7 @@ apps.formbased.info=\u8868\u5355\u8ba4\u8bc1 apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740 apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04 apps.formbased.passwordMapping=\u767b\u5f55\u51ed\u8bc1\u6620\u5c04 +apps.formbased.passwordAlgorithm=\u5BC6\u7801\u7B97\u6CD5 apps.formbased.authorizeView=\u8ba4\u8bc1\u89c6\u56fe apps.formbased.parameter=\u53c2\u6570 apps.formbased.parameter.value=\u53c2\u6570\u503c diff --git a/maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl b/maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl index 40d8fd73e..a0d6231a1 100644 --- a/maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl +++ b/maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl @@ -78,9 +78,10 @@ $(function(){ <@locale code="apps.credential.system"/> * -