v2.9.0 GA & optimize

v2.9.0 GA & optimize
This commit is contained in:
MaxKey
2021-08-21 20:39:12 +08:00
parent 225b32e36b
commit 1fc03fc3b2
11 changed files with 64 additions and 73 deletions

View File

@@ -181,8 +181,9 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
}
public UsernamePasswordAuthenticationToken setOnline(LoginCredential credential,UserInfo userInfo) {
String currentUserSessionId = WebContext.genId();
//Online Tickit Id
String onlineTickitId = WebConstants.ONLINE_TICKET_PREFIX + "-" +WebContext.genId();
String onlineTickitId = WebConstants.ONLINE_TICKET_PREFIX + "-" + currentUserSessionId;
_logger.debug("set online Tickit Cookie " + onlineTickitId + " on domain "+ this.applicationConfig.getBaseDomainName());
OnlineTicket onlineTicket = new OnlineTicket(onlineTickitId);
@@ -226,10 +227,11 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
/*
* put userInfo to current session context
*/
WebContext.setAuthentication(authenticationToken);
WebContext.setUserInfo(userInfo);
WebContext.setAuthentication(authenticationToken);
WebContext.setAttribute(WebConstants.CURRENT_USER_SESSION_ID, currentUserSessionId);
return authenticationToken;
}

View File

@@ -22,8 +22,6 @@ import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.maxkey.authn.SigninPrincipal;
import org.maxkey.authn.online.OnlineTicket;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.entity.Groups;
import org.maxkey.entity.UserInfo;
@@ -37,7 +35,6 @@ import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
/**
@@ -138,18 +135,13 @@ 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 !=null && authentication.getPrincipal() instanceof SigninPrincipal) {
if(WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID) !=null) {
sessionStatus = 1;
SigninPrincipal signinPrincipal = (SigninPrincipal)authentication.getPrincipal();
onlineTicket = signinPrincipal.getOnlineTicket();
sessionId = onlineTicket.getTicketId().substring(3);
WebContext.setAttribute(WebConstants.CURRENT_USER_SESSION_ID, sessionId);
sessionId = WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID).toString();
}
_logger.debug("user session id is {} , online ticket {} ",sessionId,(onlineTicket == null ? "" : onlineTicket.getTicketId()));
_logger.debug("user session id is {} . ",sessionId);
userInfo.setLastLoginTime(DateUtils.formatDateTime(new Date()));
userInfo.setLastLoginIp(WebContext.getRequestIpAddress());