mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 01:18:27 +08:00
FormBasedDefaultAdapter
This commit is contained in:
parent
29566e64ed
commit
1a65b1059a
@ -47,6 +47,8 @@ public class AppsFormBasedDetails extends Apps {
|
|||||||
@Column
|
@Column
|
||||||
private String passwordMapping;
|
private String passwordMapping;
|
||||||
@Column
|
@Column
|
||||||
|
private String passwordAlgorithm;
|
||||||
|
@Column
|
||||||
private String authorizeView;
|
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() {
|
public String toString() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append("AppsFormBasedDetails [id=");
|
builder.append("AppsFormBasedDetails [id=");
|
||||||
|
|||||||
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
package org.maxkey.authz.formbased.endpoint.adapter;
|
package org.maxkey.authz.formbased.endpoint.adapter;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
import org.maxkey.authn.SigninPrincipal;
|
import org.maxkey.authn.SigninPrincipal;
|
||||||
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
||||||
import org.maxkey.constants.Boolean;
|
import org.maxkey.constants.Boolean;
|
||||||
@ -43,35 +45,31 @@ public class FormBasedDefaultAdapter extends AbstractAuthorizeAdapter {
|
|||||||
modelAndView.setViewName("authorize/formbased_sso_submint");
|
modelAndView.setViewName("authorize/formbased_sso_submint");
|
||||||
AppsFormBasedDetails details=(AppsFormBasedDetails)app;
|
AppsFormBasedDetails details=(AppsFormBasedDetails)app;
|
||||||
|
|
||||||
modelAndView.addObject("username", details.getAppUser().getRelatedUsername());
|
String password = details.getAppUser().getRelatedPassword();
|
||||||
modelAndView.addObject("password", details.getAppUser().getRelatedPassword());
|
if(null==details.getPasswordAlgorithm()||details.getPasswordAlgorithm().equals("")){
|
||||||
|
}else if(details.getPasswordAlgorithm().indexOf("HEX")>-1){
|
||||||
if(Boolean.isTrue(details.getIsExtendAttr())){
|
password = DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm().substring(0, details.getPasswordAlgorithm().indexOf("HEX")));
|
||||||
modelAndView.addObject("extendAttr", details.getExtendAttr());
|
}else{
|
||||||
modelAndView.addObject("isExtendAttr", true);
|
password = DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),details.getPasswordAlgorithm());
|
||||||
}else{
|
}
|
||||||
modelAndView.addObject("isExtendAttr", false);
|
|
||||||
}
|
modelAndView.addObject("id", details.getId());
|
||||||
|
|
||||||
modelAndView.addObject("action", details.getRedirectUri());
|
modelAndView.addObject("action", details.getRedirectUri());
|
||||||
|
modelAndView.addObject("redirectUri", details.getRedirectUri());
|
||||||
|
modelAndView.addObject("loginUrl", details.getLoginUrl());
|
||||||
modelAndView.addObject("usernameMapping", details.getUsernameMapping());
|
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("passwordMapping", details.getPasswordMapping());
|
||||||
|
modelAndView.addObject("username", details.getAppUser().getRelatedUsername());
|
||||||
|
modelAndView.addObject("password", password);
|
||||||
|
modelAndView.addObject("timestamp", ""+Instant.now().getEpochSecond());
|
||||||
|
|
||||||
if(null==passwordAlgorithm){
|
if(Boolean.isTrue(details.getIsExtendAttr())){
|
||||||
modelAndView.addObject("password", details.getAppUser().getRelatedPassword());
|
modelAndView.addObject("extendAttr", details.getExtendAttr());
|
||||||
}else if(passwordAlgorithm.indexOf("HEX")>-1){
|
modelAndView.addObject("isExtendAttr", true);
|
||||||
modelAndView.addObject("password", DigestUtils.digestHex(details.getAppUser().getRelatedPassword(),passwordAlgorithm.substring(0, passwordAlgorithm.indexOf("HEX"))));
|
}else{
|
||||||
}else{
|
modelAndView.addObject("isExtendAttr", false);
|
||||||
modelAndView.addObject("password", DigestUtils.digestBase64(details.getAppUser().getRelatedPassword(),passwordAlgorithm));
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if(details.getAuthorizeView()!=null&&!details.getAuthorizeView().equals("")){
|
if(details.getAuthorizeView()!=null&&!details.getAuthorizeView().equals("")){
|
||||||
modelAndView.setViewName("authorize/"+details.getAuthorizeView());
|
modelAndView.setViewName("authorize/"+details.getAuthorizeView());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
package org.maxkey.authz.formbased.endpoint.adapter;
|
package org.maxkey.authz.formbased.endpoint.adapter;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
import org.maxkey.authn.SigninPrincipal;
|
import org.maxkey.authn.SigninPrincipal;
|
||||||
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
||||||
import org.maxkey.constants.Boolean;
|
import org.maxkey.constants.Boolean;
|
||||||
@ -44,28 +46,23 @@ public class FormBasedRedirectAdapter extends AbstractAuthorizeAdapter {
|
|||||||
modelAndView.setViewName("authorize/formbased_redirect_submint");
|
modelAndView.setViewName("authorize/formbased_redirect_submint");
|
||||||
AppsFormBasedDetails details=(AppsFormBasedDetails)app;
|
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("id", details.getId());
|
||||||
modelAndView.addObject("action", details.getRedirectUri());
|
modelAndView.addObject("action", details.getRedirectUri());
|
||||||
|
modelAndView.addObject("redirectUri", details.getRedirectUri());
|
||||||
modelAndView.addObject("loginUrl", details.getLoginUrl());
|
modelAndView.addObject("loginUrl", details.getLoginUrl());
|
||||||
modelAndView.addObject("usernameMapping", details.getUsernameMapping());
|
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("passwordMapping", details.getPasswordMapping());
|
||||||
|
|
||||||
modelAndView.addObject("username", details.getAppUser().getRelatedUsername());
|
modelAndView.addObject("username", details.getAppUser().getRelatedUsername());
|
||||||
if(null==passwordAlgorithm){
|
modelAndView.addObject("password", password);
|
||||||
modelAndView.addObject("password", details.getAppUser().getRelatedPassword());
|
modelAndView.addObject("timestamp", ""+Instant.now().getEpochSecond());
|
||||||
}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(WebContext.getAttribute("formbased_redirect_submint")==null){
|
if(WebContext.getAttribute("formbased_redirect_submint")==null){
|
||||||
modelAndView.setViewName("authorize/formbased_redirect_submint");
|
modelAndView.setViewName("authorize/formbased_redirect_submint");
|
||||||
|
|||||||
@ -320,6 +320,7 @@ apps.formbased.info=\u8868\u5355\u8ba4\u8bc1
|
|||||||
apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740
|
apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740
|
||||||
apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04
|
apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04
|
||||||
apps.formbased.passwordMapping=\u767b\u5f55\u51ed\u8bc1\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.authorizeView=\u8ba4\u8bc1\u89c6\u56fe
|
||||||
apps.formbased.parameter=\u53c2\u6570
|
apps.formbased.parameter=\u53c2\u6570
|
||||||
apps.formbased.parameter.value=\u53c2\u6570\u503c
|
apps.formbased.parameter.value=\u53c2\u6570\u503c
|
||||||
|
|||||||
@ -325,7 +325,10 @@ apps.formbased.info=formbased Info
|
|||||||
apps.formbased.redirectUri=redirectUri
|
apps.formbased.redirectUri=redirectUri
|
||||||
apps.formbased.usernameMapping=usernameMapping
|
apps.formbased.usernameMapping=usernameMapping
|
||||||
apps.formbased.passwordMapping=passwordMapping
|
apps.formbased.passwordMapping=passwordMapping
|
||||||
|
apps.formbased.passwordAlgorithm=passwordAlgorithm
|
||||||
apps.formbased.authorizeView=authorizeView
|
apps.formbased.authorizeView=authorizeView
|
||||||
|
apps.formbased.parameter=parameter
|
||||||
|
apps.formbased.parameter.value=value
|
||||||
|
|
||||||
#cas
|
#cas
|
||||||
apps.cas.info=CAS Info
|
apps.cas.info=CAS Info
|
||||||
|
|||||||
@ -323,6 +323,7 @@ apps.formbased.info=\u8868\u5355\u8ba4\u8bc1
|
|||||||
apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740
|
apps.formbased.redirectUri=\u8ba4\u8bc1\u5730\u5740
|
||||||
apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04
|
apps.formbased.usernameMapping=\u767b\u5f55\u540d\u6620\u5c04
|
||||||
apps.formbased.passwordMapping=\u767b\u5f55\u51ed\u8bc1\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.authorizeView=\u8ba4\u8bc1\u89c6\u56fe
|
||||||
apps.formbased.parameter=\u53c2\u6570
|
apps.formbased.parameter=\u53c2\u6570
|
||||||
apps.formbased.parameter.value=\u53c2\u6570\u503c
|
apps.formbased.parameter.value=\u53c2\u6570\u503c
|
||||||
|
|||||||
@ -78,9 +78,10 @@ $(function(){
|
|||||||
<@locale code="apps.credential.system"/>
|
<@locale code="apps.credential.system"/>
|
||||||
<b class="orange">*</b><label for="credential"></label>
|
<b class="orange">*</b><label for="credential"></label>
|
||||||
</td>
|
</td>
|
||||||
<th></th>
|
<th><@locale code="apps.formbased.passwordAlgorithm"/>:</th>
|
||||||
<td>
|
<td>
|
||||||
</td>
|
<input type="text" class="form-control" id="passwordAlgorithm" name="passwordAlgorithm" title="" value=""/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><@locale code="apps.formbased.authorizeView"/>:</th>
|
<th><@locale code="apps.formbased.authorizeView"/>:</th>
|
||||||
|
|||||||
@ -81,8 +81,9 @@ $(function(){
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<th></th>
|
<th><@locale code="apps.formbased.passwordAlgorithm"/>:</th>
|
||||||
<td >
|
<td>
|
||||||
|
<input type="text" class="form-control" id="passwordAlgorithm" name="passwordAlgorithm" title="" value="${model.passwordAlgorithm!}"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html >
|
||||||
|
<head>
|
||||||
|
<title>Redirect Single Sign-On</title>
|
||||||
|
<#include "authorize_common.ftl">
|
||||||
|
<script type="text/javascript">
|
||||||
|
function redirectToLogin(){
|
||||||
|
window.top.location.href ="${redirectUri}&${usernameMapping}=${username}&${passwordMapping}=${password}×tamp=${timestamp}";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body onload="redirectToLogin()" style="display:none">
|
||||||
|
<form id="redirect_sso_form" name="redirect_sso_form" action="${redirectUri}" method="get">
|
||||||
|
<table style="width:100%">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><input type="submit" name="submitBtn" value="Continue..." /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -11,7 +11,7 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body onload="redirectToLogin()" style="display:none">
|
<body onload="redirectToLogin()" style="display:none">
|
||||||
<form id="cas_sso_form" name="cas_sso_form" action="${redirect_uri}" method="get">
|
<form id="redirect_sso_form" name="redirect_sso_form" action="${redirect_uri}" method="get">
|
||||||
<table style="width:100%">
|
<table style="width:100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><input type="submit" name="submitBtn" value="Continue..." /></td>
|
<td colspan="2"><input type="submit" name="submitBtn" value="Continue..." /></td>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user