This commit is contained in:
shimingxy
2019-11-06 23:28:59 +08:00
parent 623d6551c8
commit 3ce501aa86
167 changed files with 2293 additions and 1946 deletions

View File

@@ -0,0 +1 @@
/org/

View File

@@ -6,10 +6,10 @@ package org.maxkey.authz.endpoint;
import org.maxkey.config.ApplicationConfig;
import org.maxkey.crypto.ReciprocalUtils;
import org.maxkey.dao.service.AccountsService;
import org.maxkey.dao.service.ApplicationsService;
import org.maxkey.dao.service.AppsService;
import org.maxkey.domain.Accounts;
import org.maxkey.domain.UserInfo;
import org.maxkey.domain.apps.Applications;
import org.maxkey.domain.apps.Apps;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -25,8 +25,8 @@ public class AuthorizeBaseEndpoint {
final static Logger _logger = LoggerFactory.getLogger(AuthorizeBaseEndpoint.class);
@Autowired
@Qualifier("applicationsService")
protected ApplicationsService applicationsService;
@Qualifier("appsService")
protected AppsService appsService;
@Autowired
@Qualifier("applicationConfig")
@@ -36,58 +36,58 @@ public class AuthorizeBaseEndpoint {
AccountsService accountsService;
protected Applications getApplication(String id){
Applications application=(Applications)WebContext.getAttribute(AuthorizeBaseEndpoint.class.getName());
protected Apps getApp(String id){
Apps app=(Apps)WebContext.getAttribute(AuthorizeBaseEndpoint.class.getName());
//session中为空或者id不一致重新加载
if(application==null||!application.getId().equalsIgnoreCase(id)) {
application=applicationsService.get(id);
if(app==null||!app.getId().equalsIgnoreCase(id)) {
app=appsService.get(id);
}
if(application == null){
if(app == null){
_logger.error("Applications for id "+id + " is null");
}
WebContext.setAttribute(AuthorizeBaseEndpoint.class.getName(), application);
return application;
WebContext.setAttribute(AuthorizeBaseEndpoint.class.getName(), app);
return app;
}
protected Accounts getAppAccounts(Applications app){
Accounts appAccount=new Accounts();
protected Accounts getAccounts(Apps app){
Accounts account=new Accounts();
UserInfo userInfo=WebContext.getUserInfo();
Applications application= getApplication(app.getId());
if(application.getCredential()==Applications.CREDENTIALS.USER_DEFINED){
Apps application= getApp(app.getId());
if(application.getCredential()==Apps.CREDENTIALS.USER_DEFINED){
appAccount=accountsService.load(new Accounts(userInfo.getId(),application.getId()));
if(appAccount!=null){
appAccount.setRelatedPassword(ReciprocalUtils.decoder(appAccount.getRelatedPassword()));
account=accountsService.load(new Accounts(userInfo.getId(),application.getId()));
if(account!=null){
account.setRelatedPassword(ReciprocalUtils.decoder(account.getRelatedPassword()));
}
}else if(application.getCredential()==Applications.CREDENTIALS.SHARED){
}else if(application.getCredential()==Apps.CREDENTIALS.SHARED){
appAccount.setRelatedUsername(application.getSharedUsername());
appAccount.setRelatedPassword(ReciprocalUtils.decoder(application.getSharedPassword()));
account.setRelatedUsername(application.getSharedUsername());
account.setRelatedPassword(ReciprocalUtils.decoder(application.getSharedPassword()));
}else if(application.getCredential()==Applications.CREDENTIALS.SYSTEM){
}else if(application.getCredential()==Apps.CREDENTIALS.SYSTEM){
if(application.getSystemUserAttr().equalsIgnoreCase("uid")){
appAccount.setUsername(userInfo.getId());
account.setUsername(userInfo.getId());
}else if(application.getSystemUserAttr().equalsIgnoreCase("username")){
appAccount.setUsername(userInfo.getUsername());
account.setUsername(userInfo.getUsername());
}else if(application.getSystemUserAttr().equalsIgnoreCase("employeeNumber")){
appAccount.setUsername(userInfo.getEmployeeNumber());
account.setUsername(userInfo.getEmployeeNumber());
}else if(application.getSystemUserAttr().equalsIgnoreCase("email")){
appAccount.setUsername(userInfo.getEmail());
account.setUsername(userInfo.getEmail());
}else if(application.getSystemUserAttr().equalsIgnoreCase("windowsAccount")){
appAccount.setUsername(userInfo.getWindowsAccount());
account.setUsername(userInfo.getWindowsAccount());
}
//decoder database stored encode password
appAccount.setRelatedPassword(ReciprocalUtils.decoder(WebContext.getUserInfo().getDecipherable()));
account.setRelatedPassword(ReciprocalUtils.decoder(WebContext.getUserInfo().getDecipherable()));
}else if(application.getCredential()==Applications.CREDENTIALS.NONE){
}else if(application.getCredential()==Apps.CREDENTIALS.NONE){
appAccount.setUsername(userInfo.getUsername());
appAccount.setRelatedPassword(userInfo.getUsername());
account.setUsername(userInfo.getUsername());
account.setRelatedPassword(userInfo.getUsername());
}
return appAccount;
return account;
}
public ModelAndView generateInitCredentialModelAndView(String appId,String redirect_uri){

View File

@@ -55,7 +55,7 @@ public class AuthorizeCredentialEndpoint extends AuthorizeBaseEndpoint{
appUser.setDisplayName(userInfo.getDisplayName());
appUser.setAppId(appId);
appUser.setAppName(getApplication(appId).getName());
appUser.setAppName(getApp(appId).getName());
appUser.setRelatedUsername(identity_username);
appUser.setRelatedPassword(ReciprocalUtils.encode(identity_password));

View File

@@ -8,8 +8,8 @@ import javax.servlet.http.HttpServletRequest;
import org.maxkey.authz.oauth2.provider.ClientDetailsService;
import org.maxkey.client.utils.HttpEncoder;
import org.maxkey.constants.PROTOCOLS;
import org.maxkey.dao.service.CasDetailsService;
import org.maxkey.domain.apps.Applications;
import org.maxkey.dao.service.AppsCasDetailsService;
import org.maxkey.domain.apps.Apps;
import org.maxkey.domain.apps.oauth2.provider.ClientDetails;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
@@ -33,7 +33,7 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
private ClientDetailsService clientDetailsService;
@Autowired
CasDetailsService casDetailsService;
AppsCasDetailsService casDetailsService;
//all single sign on url
@RequestMapping("/authz/{id}")
@@ -43,7 +43,7 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
ModelAndView modelAndView=null;
Applications application=getApplication(id);
Apps application=getApp(id);
WebContext.setAttribute(WebConstants.SINGLE_SIGN_ON_APP_ID, id);
if(application.getProtocol().equalsIgnoreCase(PROTOCOLS.EXTEND_API)){
@@ -68,8 +68,6 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
modelAndView=WebContext.forward("/authz/saml20/idpinit/"+application.getId());
}else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.TOKENBASED)){
modelAndView=WebContext.forward("/authorize/tokenbased/"+id);
}else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.LTPA)){
modelAndView=WebContext.forward("/authz/ltpa/"+id);
}else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.CAS)){
modelAndView=WebContext.forward("/authz/cas/"+id);
}else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.DESKTOP)){
@@ -87,7 +85,7 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
public ModelAndView authorizeOAuth10a(
@PathVariable("id") String id){
String redirec_uri=getApplication(id).getLoginUrl();
String redirec_uri=getApp(id).getLoginUrl();
return WebContext.redirect(redirec_uri);
}

View File

@@ -9,7 +9,7 @@ import org.maxkey.crypto.cert.CertSigner;
import org.maxkey.crypto.keystore.KeyStoreLoader;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.domain.UserInfo;
import org.maxkey.domain.apps.Applications;
import org.maxkey.domain.apps.Apps;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,7 +24,7 @@ public abstract class AbstractAuthorizeAdapter {
public abstract String generateInfo(UserInfo userInfo,Object app);
public String sign(String data,Applications app){
public String sign(String data,Apps app){
if(BOOLEAN.isTrue(app.getIsSignature())){
KeyStoreLoader keyStoreLoader=(KeyStoreLoader)WebContext.getBean("keyStoreLoader");
try {