use of com.tvd12.ezyfoxserver.event.EzyUserLoginEvent in project ezyfox-server by youngmonkeys.
the class EzyLoginProcessorTest method processUserSessionsMaxSessionPerUserGreaterThan1.
@SuppressWarnings("rawtypes")
@Test
public void processUserSessionsMaxSessionPerUserGreaterThan1() {
// given
EzySimpleZoneSetting zoneSetting = new EzySimpleZoneSetting();
zoneSetting.getUserManagement().setMaxSessionPerUser(2);
EzySimpleZone zone = new EzySimpleZone();
zone.setSetting(zoneSetting);
EzyZoneContext zoneContext = mock(EzyZoneContext.class);
when(zoneContext.getZone()).thenReturn(zone);
EzySimpleServer server = new EzySimpleServer();
EzySessionManager sessionManager = mock(EzySessionManager.class);
server.setSessionManager(sessionManager);
EzyZoneUserManager userManager = EzyZoneUserManagerImpl.builder().build();
EzyUser user = mock(EzyUser.class);
when(user.getName()).thenReturn("monkey");
when(user.getSessionCount()).thenReturn(2);
userManager.addUser(user);
zone.setUserManager(userManager);
EzyStatistics statistics = mock(EzyStatistics.class);
EzyUserStatistics userStatistics = mock(EzyUserStatistics.class);
when(statistics.getUserStats()).thenReturn(userStatistics);
server.setStatistics(statistics);
EzyServerContext serverContext = mock(EzyServerContext.class);
when(serverContext.getServer()).thenReturn(server);
EzyLoginProcessor sut = new EzyLoginProcessor(serverContext);
EzySessionDelegate sessionDelegate = mock(EzySessionDelegate.class);
EzyAbstractSession session = spy(EzyAbstractSession.class);
session.setDelegate(sessionDelegate);
EzyUserLoginEvent event = mock(EzyUserLoginEvent.class);
when(event.getUsername()).thenReturn("monkey");
when(event.getSession()).thenReturn(session);
// when
Throwable e = Asserts.assertThrows(() -> sut.apply(zoneContext, event));
// then
Asserts.assertEquals(EzyLoginErrorException.class, e.getClass());
}
use of com.tvd12.ezyfoxserver.event.EzyUserLoginEvent in project ezyfox-server by youngmonkeys.
the class EzyLoginProcessorTest method processUserSessionsOk.
@SuppressWarnings("rawtypes")
@Test
public void processUserSessionsOk() {
// given
EzySimpleZoneSetting zoneSetting = new EzySimpleZoneSetting();
zoneSetting.getUserManagement().setMaxSessionPerUser(1);
zoneSetting.getUserManagement().setAllowChangeSession(true);
EzySimpleZone zone = new EzySimpleZone();
zone.setSetting(zoneSetting);
EzyZoneContext zoneContext = mock(EzyZoneContext.class);
when(zoneContext.getZone()).thenReturn(zone);
EzySimpleServer server = new EzySimpleServer();
EzySessionManager sessionManager = mock(EzySessionManager.class);
server.setSessionManager(sessionManager);
EzyZoneUserManager userManager = EzyZoneUserManagerImpl.builder().build();
EzyUser user = mock(EzyUser.class);
when(user.getName()).thenReturn("monkey");
when(user.getSessionCount()).thenReturn(1);
userManager.addUser(user);
zone.setUserManager(userManager);
EzyStatistics statistics = mock(EzyStatistics.class);
EzyUserStatistics userStatistics = mock(EzyUserStatistics.class);
when(statistics.getUserStats()).thenReturn(userStatistics);
server.setStatistics(statistics);
EzyServerContext serverContext = mock(EzyServerContext.class);
when(serverContext.getServer()).thenReturn(server);
EzyLoginProcessor sut = new EzyLoginProcessor(serverContext);
EzySessionDelegate sessionDelegate = mock(EzySessionDelegate.class);
EzyAbstractSession session = spy(EzyAbstractSession.class);
session.setDelegate(sessionDelegate);
EzyUserLoginEvent event = mock(EzyUserLoginEvent.class);
when(event.getUsername()).thenReturn("monkey");
when(event.getSession()).thenReturn(session);
// when
sut.apply(zoneContext, event);
// then
Asserts.assertTrue(session.isLoggedIn());
}
use of com.tvd12.ezyfoxserver.event.EzyUserLoginEvent in project ezyfox-server by youngmonkeys.
the class EzyUserLoginEventImplTest method test.
@SuppressWarnings("unchecked")
@Test
public void test() {
EzyArray data = newArrayBuilder().build();
data.add("123.abc");
EzyObject output2 = newObjectBuilder().append("2", "b").build();
EzyUserLoginEvent event = new EzySimpleUserLoginEvent(null, "zone", "dungtv", "123", data);
assert event.getData() == data;
assert event.getUsername().equals("dungtv");
assert event.getPassword().equals("123");
assert event.getOutput() == null;
event.setUsername("new login name");
event.setPassword("new password");
event.setOutput(output2);
assert event.getUsername().equals("new login name");
assert event.getPassword().equals("new password");
assert event.getOutput() == output2;
event.setUserProperty("id", 1);
event.setUserProperties(EzyMapBuilder.mapBuilder().build());
assert event.getUserProperties().size() == 1;
event.setStreamingEnable(true);
assert event.isStreamingEnable();
assert event.getZoneName().equals("zone");
event = new EzySimpleUserLoginEvent(null, null, null, null, null);
assert event.getUsername().equals("");
assert event.getPassword().equals("");
}
use of com.tvd12.ezyfoxserver.event.EzyUserLoginEvent in project ezyfox-server-example by tvd12.
the class UserLoginController method handle.
@Override
public void handle(EzyPluginContext ctx, EzyUserLoginEvent event) {
logger.info("{} login in", event.getUsername());
String username = event.getUsername();
String password = encodePassword(event.getPassword());
User user = userService.getUser(username);
if (user == null) {
logger.info("User doesn't exist in db, create a new one!");
user = userService.createUser(username, password);
userService.saveUser(user);
}
if (!user.getPassword().equals(password)) {
throw new EzyLoginErrorException(EzyLoginError.INVALID_PASSWORD);
}
logger.info("user and password match, accept user: {}", username);
}
use of com.tvd12.ezyfoxserver.event.EzyUserLoginEvent in project ezyfox-server-example by tvd12.
the class UserLoginController method loginWithToken.
private void loginWithToken(EzyUserLoginEvent event, String token) {
logger.info("handle user login in with token");
try {
byte[] usernameBytes = EzyAesCrypt.getDefault().decrypt(EzyBase64.decode(token), CommonConstants.TOKEN_ENCRYPTION_KEY.getBytes());
String username = new String(usernameBytes);
event.setUsername(username);
} catch (Exception e) {
throw new EzyLoginErrorException(EzyLoginError.INVALID_TOKEN);
}
}
Aggregations