use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.
the class EzyAppResponseImplTest method testPerformance.
@Test
public void testPerformance() {
EzyAppResponse response = newResponse();
EzyUser user1 = new ExUser("user1");
EzySession session1 = new ExSession();
EzySession session2 = new ExSession();
user1.addSession(session1);
user1.addSession(session2);
EzyUser user2 = new ExUser("user2");
EzySession session3 = new ExSession();
EzySession session4 = new ExSession();
user2.addSession(session3);
user2.addSession(session4);
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection") List<Object> list = new ArrayList<>();
long time = Performance.create().loop(1000000).test(() -> {
response.users(new EzyUser[] { user1, user2 }, false);
list.add(user1);
list.add(user2);
list.add(Arrays.asList(user1, user2));
list.addAll(user1.getSessions());
list.addAll(user2.getSessions());
response.user(user1);
response.user(user2);
}).getTime();
System.out.println("time = " + time);
}
use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.
the class EzyLoginProcessor method apply.
public void apply(EzyZoneContext zoneContext, EzyUserLoginEvent event) {
EzyZone zone = zoneContext.getZone();
EzyZoneSetting zoneSetting = zone.getSetting();
EzyUserManagementSetting userManagementSetting = zoneSetting.getUserManagement();
String username = checkUsername(event.getUsername(), userManagementSetting.getUserNamePattern(), userManagementSetting.isAllowGuestLogin(), userManagementSetting.getGuestNamePrefix());
String password = event.getPassword();
EzyZoneUserManager userManager = zone.getUserManager();
EzyUser user;
EzySession session = event.getSession();
boolean alreadyLoggedIn;
Lock lock = userManager.getLock(username);
lock.lock();
try {
alreadyLoggedIn = userManager.containsUser(username);
if (alreadyLoggedIn) {
user = userManager.getUser(username);
} else {
user = newUser(zoneSetting, userManagementSetting, username, password, event.getUserProperties());
}
int maxSessionPerUser = userManagementSetting.getMaxSessionPerUser();
boolean allowChangeSession = userManagementSetting.isAllowChangeSession();
EzyStreamingSetting streamingSetting = zoneSetting.getStreaming();
boolean streamingEnable = streamingSetting.isEnable() && event.isStreamingEnable();
processUserSessions(user, session, maxSessionPerUser, allowChangeSession, streamingEnable);
addUserToManager(userManager, user, session, alreadyLoggedIn);
} finally {
lock.unlock();
userManager.removeLock(username);
}
fireUserAddedEvent(zoneContext, user, session, event.getData(), alreadyLoggedIn);
EzyResponse response = newLoginResponse(zoneContext, user, event.getOutput());
serverContext.send(response, session, false);
}
use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.
the class EzyLoginProcessor method newUser.
protected EzyUser newUser(EzyZoneSetting zoneSetting, EzyUserManagementSetting userManagementSetting, String newUserName, String password, Map<Object, Object> properties) {
EzySimpleUser user = new EzySimpleUser();
user.setName(newUserName);
user.setPassword(password);
user.setZoneId(zoneSetting.getId());
user.setMaxIdleTime(userManagementSetting.getUserMaxIdleTime());
user.setMaxSessions(userManagementSetting.getMaxSessionPerUser());
user.setProperties(properties);
return user;
}
use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.
the class EzyPluginInfoController method handle.
@Override
public void handle(EzyServerContext ctx, EzyPluginInfoRequest request) {
EzyUser user = request.getUser();
EzySession session = request.getSession();
EzyPluginInfoParams params = request.getParams();
EzyZoneContext zoneCtx = ctx.getZoneContext(user.getZoneId());
EzyPluginContext pluginCtx = zoneCtx.getPluginContext(params.getPluginName());
if (pluginCtx != null) {
EzyPluginSetting setting = pluginCtx.getPlugin().getSetting();
EzyResponse response = newPluginInfoResponse(setting);
ctx.send(response, session, false);
}
}
use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.
the class EzySimpleAppUserDelegate method handleUserRemovedEvent.
protected void handleUserRemovedEvent(EzyUser user, EzyConstant reason) {
EzyEvent event = new EzySimpleUserRemovedEvent(user, reason);
appContext.handleEvent(EzyEventType.USER_REMOVED, event);
}
Aggregations