v2.9.0 & loginSession

This commit is contained in:
MaxKey
2021-08-19 11:33:33 +08:00
parent eda9eeb6e8
commit f80582fbb3
14 changed files with 302 additions and 11 deletions

View File

@@ -331,6 +331,7 @@ public abstract class AbstractAuthenticationProvider {
_logger.debug("login user " + username + " not in this System ." + message);
UserInfo loginUser = new UserInfo(username);
loginUser.setId(loginUser.generateId());
loginUser.setUsername(username);
loginUser.setDisplayName("not exist");
loginUser.setLoginCount(0);
authenticationRealm.insertLoginHistory(loginUser, ConstantsLoginType.LOCAL, "",

View File

@@ -94,7 +94,7 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
userInfo = loadUserInfo(loginCredential.getUsername(),loginCredential.getPassword());
userinfoValid(userInfo, loginCredential.getPassword());
userinfoValid(userInfo, loginCredential.getUsername());
tftcaptchaValid(loginCredential.getOtpCaptcha(),loginCredential.getAuthType(),userInfo);

View File

@@ -139,15 +139,16 @@ public abstract class AbstractAuthenticationRealm {
public boolean insertLoginHistory(UserInfo userInfo, String type, String provider, String code, String message) {
String sessionId = WebContext.genId();
OnlineTicket onlineTicket = null ;
int sessionStatus = 7;
Authentication authentication = WebContext.getAuthentication();
if(authentication.getPrincipal() instanceof SigninPrincipal) {
if(authentication !=null && authentication.getPrincipal() instanceof SigninPrincipal) {
sessionStatus = 1;
SigninPrincipal signinPrincipal = (SigninPrincipal)authentication.getPrincipal();
onlineTicket = signinPrincipal.getOnlineTicket();
sessionId = onlineTicket.getTicketId().substring(3);
WebContext.setAttribute(WebConstants.CURRENT_USER_SESSION_ID, sessionId);
}
WebContext.setAttribute(WebConstants.CURRENT_USER_SESSION_ID, sessionId);
_logger.debug("user session id is {} , online ticket {} ",sessionId,(onlineTicket == null ? "" : onlineTicket.getTicketId()));
userInfo.setLastLoginTime(DateUtils.formatDateTime(new Date()));
@@ -189,7 +190,7 @@ public abstract class AbstractAuthenticationRealm {
}
loginHistoryService.login(userInfo,sessionId, type, message, code, provider, browser, platform);
loginHistoryService.login(userInfo,sessionId, type, message, code, provider, browser, platform,sessionStatus);
loginService.setLastLoginInfo(userInfo);