This commit is contained in:
parent
220caec7cc
commit
f72d7ff8e2
1 changed files with 28 additions and 1 deletions
|
|
@ -13,6 +13,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.UserAuthRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.UserAuthRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.UserLogoutRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.platform.enumeration.ConnectionState;
|
import ru.spcex.platform.enumeration.ConnectionState;
|
||||||
import ru.spcex.platform.enumeration.Status;
|
import ru.spcex.platform.enumeration.Status;
|
||||||
|
|
@ -46,17 +47,40 @@ public class UserService extends QueueConsumer implements InitializingBean {
|
||||||
callback(UserAuthRequest.class)
|
callback(UserAuthRequest.class)
|
||||||
.setConsumer(this::userAuthSuccess)
|
.setConsumer(this::userAuthSuccess)
|
||||||
.forDestination(Consts.USER_AUTH_SUCCESS, callbacks::put);
|
.forDestination(Consts.USER_AUTH_SUCCESS, callbacks::put);
|
||||||
|
callback(UserLogoutRequest.class)
|
||||||
|
.setConsumer(this::usersLogoutSuccess)
|
||||||
|
.forDestination(Consts.USER_LOGOUT_SUCCESS, callbacks::put);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void userAuthSuccess(BaseRequest<UserAuthRequest> authEvent) {
|
private void userAuthSuccess(BaseRequest<UserAuthRequest> authEvent) {
|
||||||
UserAuthRequest authInfo = authEvent.getRequestPayload();
|
UserAuthRequest authInfo = authEvent.getRequestPayload();
|
||||||
log.debug("user id={} authenticated", authInfo.getUsername());
|
log.debug("user name={} authenticated", authInfo.getUsername());
|
||||||
UserInfo userInfo = createUserIfNeeded(authInfo.getUsername());
|
UserInfo userInfo = createUserIfNeeded(authInfo.getUsername());
|
||||||
changeRoles(userInfo.userId, userInfo.isNew, authInfo.getRoles());
|
changeRoles(userInfo.userId, userInfo.isNew, authInfo.getRoles());
|
||||||
connected(userInfo.userId, authInfo.getTime(), authInfo.getClientIp(), authInfo.getServerIp());
|
connected(userInfo.userId, authInfo.getTime(), authInfo.getClientIp(), authInfo.getServerIp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void usersLogoutSuccess(BaseRequest<UserLogoutRequest> logoutEvent) {
|
||||||
|
UserLogoutRequest logoutInfo = logoutEvent.getRequestPayload();
|
||||||
|
log.debug("user name={} logout", logoutInfo.getUsername());
|
||||||
|
User user = userMap.getSingleObjectByFieldValues(Map.of("identifier", logoutInfo.getUsername()));
|
||||||
|
if (user == null) {
|
||||||
|
log.error("coudln't find user {}", logoutInfo.getUsername());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
UserConnect userConnect = userConnectImdg.getSingleObjectByFieldValues(Map.of("userId", user.getId()));
|
||||||
|
if (userConnect == null) {
|
||||||
|
log.error("coudln't find UserConnect for {}", logoutInfo.getUsername());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
userConnect.setDisconnectionTime(logoutInfo.getTime());
|
||||||
|
userConnect.setUpdated(logoutInfo.getTime());
|
||||||
|
userConnect.setConnectionState(ConnectionState.Disconnected.getKey());
|
||||||
|
userConnect.setClearingDate(TimeUtil.today());
|
||||||
|
userConnectImdg.update(userConnect);
|
||||||
|
}
|
||||||
|
|
||||||
private UserInfo createUserIfNeeded(String username) {
|
private UserInfo createUserIfNeeded(String username) {
|
||||||
User user = userMap.getSingleObjectByFieldValues(Map.of("identifier", username));
|
User user = userMap.getSingleObjectByFieldValues(Map.of("identifier", username));
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
|
|
@ -104,7 +128,10 @@ public class UserService extends QueueConsumer implements InitializingBean {
|
||||||
if (userConnect == null) {
|
if (userConnect == null) {
|
||||||
userConnect = new UserConnect();
|
userConnect = new UserConnect();
|
||||||
userConnect.setUserId(userId);
|
userConnect.setUserId(userId);
|
||||||
|
userConnect.setCreated(time);
|
||||||
isNew = true;
|
isNew = true;
|
||||||
|
} else {
|
||||||
|
userConnect.setUpdated(time);
|
||||||
}
|
}
|
||||||
userConnect.setConnectionTime(time);
|
userConnect.setConnectionTime(time);
|
||||||
userConnect.setServerIP(serverIp);
|
userConnect.setServerIP(serverIp);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue