1 package com.nilhcem.fakesmtp.server;
2
3 import org.subethamail.smtp.AuthenticationHandler;
4 import org.subethamail.smtp.MessageContext;
5
6 import java.util.Optional;
7
8
9
10
11
12
13
14
15 final class SMTPAuthHandler implements AuthenticationHandler {
16 private static final String USER_IDENTITY = "User";
17 private static final String PROMPT_USERNAME = "334 VXNlcm5hbWU6";
18 private static final String PROMPT_PASSWORD = "334 UGFzc3dvcmQ6";
19
20 private int pass = 0;
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 @Override
36 public Optional<String> auth(String clientInput, MessageContext messageContext) {
37 String prompt;
38
39 if (++pass == 1) {
40 prompt = SMTPAuthHandler.PROMPT_USERNAME;
41 } else if (pass == 2) {
42 prompt = SMTPAuthHandler.PROMPT_PASSWORD;
43 } else {
44 pass = 0;
45 return Optional.empty();
46 }
47 return Optional.of(prompt);
48 }
49
50
51
52
53
54
55
56 @Override
57 public Object getIdentity() {
58 return SMTPAuthHandler.USER_IDENTITY;
59 }
60 }