captcha config

This commit is contained in:
MaxKey
2022-02-25 14:34:55 +08:00
parent eb0d1e128e
commit 0c467a72a6
20 changed files with 405 additions and 363 deletions

View File

@@ -56,36 +56,36 @@ public class SocialSignOnListController {
public ModelAndView forwardUpdate() {
ModelAndView modelAndView=new ModelAndView("social/socialSignOnProvider");
if(applicationConfig.getLoginConfig().isSocialSignOn()){
Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
List<SocialsProvider> listSocialSignOnProvider =
socialSignOnProviderService.loadSocialsProviders(inst.getId()).getSocialSignOnProviders();
SocialsAssociate socialSignOnUser=new SocialsAssociate();
socialSignOnUser.setUserId(WebContext.getUserInfo().getId());
List<SocialsAssociate> listSocialSignOnUserToken= socialSignOnUserService.query(socialSignOnUser);
List<SocialsProvider> listBindSocialSignOnProvider=new ArrayList<SocialsProvider>();
_logger.debug("list SocialSignOnProvider : "+listSocialSignOnProvider);
_logger.debug("list SocialSignOnUserToken : "+listSocialSignOnUserToken);
for (SocialsProvider ssop : listSocialSignOnProvider){
SocialsProvider socialSignOnProvider=new SocialsProvider();
socialSignOnProvider.setProvider(ssop.getProvider());
socialSignOnProvider.setProviderName(ssop.getProviderName());
socialSignOnProvider.setIcon(ssop.getIcon());
socialSignOnProvider.setSortOrder(ssop.getSortOrder());
for(SocialsAssociate ssout :listSocialSignOnUserToken){
if(ssout.getProvider().equals(ssop.getProvider())){
socialSignOnProvider.setUserBind(true);
socialSignOnProvider.setBindTime(ssout.getCreatedDate());
socialSignOnProvider.setLastLoginTime(ssout.getUpdatedDate());
_logger.debug("binded provider : "+ssout.getProvider());
}
Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
List<SocialsProvider> listSocialSignOnProvider =
socialSignOnProviderService.loadSocialsProviders(inst.getId()).getSocialSignOnProviders();
SocialsAssociate socialSignOnUser=new SocialsAssociate();
socialSignOnUser.setUserId(WebContext.getUserInfo().getId());
List<SocialsAssociate> listSocialSignOnUserToken= socialSignOnUserService.query(socialSignOnUser);
List<SocialsProvider> listBindSocialSignOnProvider=new ArrayList<SocialsProvider>();
_logger.debug("list SocialSignOnProvider : "+listSocialSignOnProvider);
_logger.debug("list SocialSignOnUserToken : "+listSocialSignOnUserToken);
for (SocialsProvider ssop : listSocialSignOnProvider){
SocialsProvider socialSignOnProvider=new SocialsProvider();
socialSignOnProvider.setProvider(ssop.getProvider());
socialSignOnProvider.setProviderName(ssop.getProviderName());
socialSignOnProvider.setIcon(ssop.getIcon());
socialSignOnProvider.setSortOrder(ssop.getSortOrder());
for(SocialsAssociate ssout :listSocialSignOnUserToken){
if(ssout.getProvider().equals(ssop.getProvider())){
socialSignOnProvider.setUserBind(true);
socialSignOnProvider.setBindTime(ssout.getCreatedDate());
socialSignOnProvider.setLastLoginTime(ssout.getUpdatedDate());
_logger.debug("binded provider : "+ssout.getProvider());
}
listBindSocialSignOnProvider.add(socialSignOnProvider);
}
modelAndView.addObject("listSocialSignOnProvider", listBindSocialSignOnProvider);
listBindSocialSignOnProvider.add(socialSignOnProvider);
}
modelAndView.addObject("listSocialSignOnProvider", listBindSocialSignOnProvider);
return modelAndView;
}

View File

@@ -24,6 +24,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.entity.Institutions;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,10 +55,11 @@ public class IndexEndpoint {
public ModelAndView forwardindex(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
_logger.debug("IndexEndpoint /forwardindex.");
String defaultUri = applicationConfig.getLoginConfig().getDefaultUri();
Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
String defaultUri = inst.getDefaultUri();
if (defaultUri != null && !defaultUri.equals("")) {
_logger.debug("defaultUri " + defaultUri);
return WebContext.redirect(applicationConfig.getLoginConfig().getDefaultUri());
return WebContext.redirect(defaultUri);
}
_logger.debug("Uri /appList");
return new ModelAndView("/appList");

View File

@@ -122,15 +122,13 @@ public class LoginEndpoint {
if( applicationConfig.getLoginConfig().isKerberos()){
modelAndView.addObject("userDomainUrlJson", kerberosService.buildKerberosProxys());
}
modelAndView.addObject("isCaptcha", applicationConfig.getLoginConfig().isCaptcha());
Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
modelAndView.addObject("isCaptcha", inst.isCaptchaSupport());
modelAndView.addObject("captcha", inst.getCaptcha());
modelAndView.addObject("sessionid", WebContext.getSession().getId());
//modelAndView.addObject("jwtToken",jwtLoginService.buildLoginJwt());
//load Social Sign On Providers
if(applicationConfig.getLoginConfig().isSocialSignOn()){
_logger.trace("Load Social Sign On Providers ");
Institutions inst = (Institutions)WebContext.getAttribute(WebConstants.CURRENT_INST);
modelAndView.addObject("sspLogin", socialSignOnProviderService.loadSocialsProviders(inst.getId()));
}
modelAndView.addObject("sspLogin", socialSignOnProviderService.loadSocialsProviders(inst.getId()));
Object loginErrorMessage=WebContext.getAttribute(WebConstants.LOGIN_ERROR_SESSION_MESSAGE);
modelAndView.addObject("loginErrorMessage", loginErrorMessage==null?"":loginErrorMessage);

View File

@@ -48,10 +48,6 @@ maxkey.app.issuer =CN=ConSec,CN=COM,CN=SH
############################################################################
#Login configuration #
############################################################################
#enable captcha
maxkey.login.captcha =${LOGIN_CAPTCHA:true}
#text or arithmetic
maxkey.login.captcha.type =${LOGIN_CAPTCHA_TYPE:text}
#enable two factor,use one time password
maxkey.login.mfa =${LOGIN_MFA_ENABLED:true}
#TimeBasedOtpAuthn MailOtpAuthn SmsOtpAuthnYunxin SmsOtpAuthnAliyun SmsOtpAuthnTencentCloud
@@ -69,8 +65,7 @@ maxkey.login.remeberme.validity =0
#JWT support
maxkey.login.jwt =${LOGIN_JWT:true}
maxkey.login.jwt.issuer =${LOGIN_JWT_ISSUER:${maxkey.server.authz.uri}}
#to default application web site
maxkey.login.default.uri =appList
#whitelist
maxkey.ipaddress.whitelist =false
#notices show
maxkey.notices.visible =false

View File

@@ -49,10 +49,6 @@ maxkey.app.issuer =CN=ConSec,CN=COM,CN=SH
############################################################################
#Login configuration #
############################################################################
#enable captcha
maxkey.login.captcha =${LOGIN_CAPTCHA:true}
#text or arithmetic
maxkey.login.captcha.type =${LOGIN_CAPTCHA_TYPE:text}
#enable two factor,use one time password
maxkey.login.mfa =${LOGIN_MFA_ENABLED:true}
#TimeBasedOtpAuthn MailOtpAuthn SmsOtpAuthnYunxin SmsOtpAuthnAliyun SmsOtpAuthnTencentCloud
@@ -70,8 +66,7 @@ maxkey.login.remeberme.validity =0
#JWT support
maxkey.login.jwt =${LOGIN_JWT:true}
maxkey.login.jwt.issuer =${LOGIN_JWT_ISSUER:${maxkey.server.authz.uri}}
#to default application web site
maxkey.login.default.uri =appList
#whitelist
maxkey.ipaddress.whitelist =false
#notices show
maxkey.notices.visible =false

View File

@@ -38,7 +38,7 @@
<div class="input-group" >
<i class="fa fa-lock fa-2" ></i>
<input required="" class="form-control " type='text' id="j_captcha" name="captcha" tabindex="3" value="" style="float: left;" placeholder='<@locale code="login.text.captcha"/>'/>
<img id="j_captchaimg" class="captcha-image" src="<@base/>/captcha"/>
<img id="j_captchaimg" class="captcha-image" src="<@base/>/captcha?captcha=${captcha}"/>
</div >
</div >
</td>