use of com.nexblocks.authguard.emb.model.Message in project AuthGuard by AuthGuard.
the class SmsPasswordlessSubscriberTest method onWrongMessageType.
@Test
void onWrongMessageType() {
final AccountTokenDO accountToken = AccountTokenDO.builder().token("token").build();
final AccountBO account = AccountBO.builder().phoneNumber(PhoneNumberBO.builder().number("+178945632").build()).build();
final PasswordlessMessageBody messageBody = new PasswordlessMessageBody(accountToken, account);
final Message message = Messages.passwordlessGenerated(messageBody).withEventType(EventType.ADMIN);
smsPasswordlessSubscriber.onMessage(message);
Mockito.verify(smsProvider, Mockito.never()).send(Mockito.any());
}
use of com.nexblocks.authguard.emb.model.Message in project AuthGuard by AuthGuard.
the class SmsPasswordlessSubscriberTest method onValidMessage.
@Test
void onValidMessage() {
final AccountTokenDO accountToken = AccountTokenDO.builder().token("token").build();
final AccountBO account = AccountBO.builder().phoneNumber(PhoneNumberBO.builder().number("+178945632").build()).firstName("first").lastName("second").build();
final PasswordlessMessageBody messageBody = new PasswordlessMessageBody(accountToken, account);
final Message message = Messages.passwordlessGenerated(messageBody);
final ImmutableTextMessage expectedSms = ImmutableTextMessage.builder().to(account.getPhoneNumber().getNumber()).parameters(ImmutableMap.of("token", accountToken.getToken(), "firstName", account.getFirstName(), "lastName", account.getLastName())).build();
smsPasswordlessSubscriber.onMessage(message);
final ArgumentCaptor<ImmutableTextMessage> sentSmsCaptor = ArgumentCaptor.forClass(ImmutableTextMessage.class);
Mockito.verify(smsProvider).send(sentSmsCaptor.capture());
assertThat(sentSmsCaptor.getValue()).isEqualTo(expectedSms);
}
use of com.nexblocks.authguard.emb.model.Message in project AuthGuard by AuthGuard.
the class SmsPasswordlessSubscriberTest method onValidMessageNoPhoneNumber.
@Test
void onValidMessageNoPhoneNumber() {
final AccountTokenDO accountToken = AccountTokenDO.builder().token("token").build();
final AccountBO account = AccountBO.builder().build();
final PasswordlessMessageBody messageBody = new PasswordlessMessageBody(accountToken, account);
final Message message = Messages.passwordlessGenerated(messageBody);
smsPasswordlessSubscriber.onMessage(message);
Mockito.verify(smsProvider, Mockito.never()).send(Mockito.any());
}
use of com.nexblocks.authguard.emb.model.Message in project AuthGuard by AuthGuard.
the class AccountLocker method processAuthMessage.
private void processAuthMessage(final AuthMessage authMessage) {
if (authMessage.getEntityType() == EntityType.ACCOUNT) {
final OffsetDateTime now = OffsetDateTime.now();
final OffsetDateTime from = now.minusMinutes(config.getCheckPeriod());
exchangeAttemptsRepository.findByEntityAndTimestamp(authMessage.getEntityId(), from).thenAccept(attempts -> {
final long failedCount = attempts.stream().filter(attempt -> !attempt.isSuccessful()).count();
if (failedCount >= config.getMaxAttempts()) {
LOG.info("Account {} had {} failed attempts in the past {} minutes; a lock will be placed", authMessage.getEntityId(), attempts.size(), config.getCheckPeriod());
final AccountLockBO lock = AccountLockBO.builder().accountId(authMessage.getEntityId()).expiresAt(now.plusMinutes(config.getLockPeriod())).build();
accountLocksService.create(lock);
}
});
} else {
LOG.info("Skipping entity auth message for entity of type {}", authMessage.getEntityType());
}
}
use of com.nexblocks.authguard.emb.model.Message in project AuthGuard by AuthGuard.
the class EmailPasswordlessSubscriberTest method onWrongMessageType.
@Test
void onWrongMessageType() {
final AccountTokenDO accountToken = AccountTokenDO.builder().token("token").build();
final AccountBO account = AccountBO.builder().email(AccountEmailBO.builder().email("user@test.net").build()).build();
final PasswordlessMessageBody messageBody = new PasswordlessMessageBody(accountToken, account);
final Message message = Messages.passwordlessGenerated(messageBody).withEventType(EventType.ADMIN);
emailPasswordlessSubscriber.onMessage(message);
Mockito.verify(emailProvider, Mockito.never()).send(Mockito.any());
}
Aggregations