Ignore:
Timestamp:
04/30/19 16:14:25 (5 years ago)
Author:
bln4
Message:

Progress on the 'Forgot Password' process

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/auth/account/Password.java

    r1336 r1340  
    88import java.sql.SQLException;
    99import java.util.Map;
     10import java.util.Properties;
    1011
    1112import javax.crypto.SecretKey;
     13import javax.mail.Message;
     14import javax.mail.MessagingException;
     15import javax.mail.PasswordAuthentication;
     16import javax.mail.Session;
     17import javax.mail.Transport;
     18import javax.mail.internet.InternetAddress;
     19import javax.mail.internet.MimeMessage;
    1220
    1321import org.expeditee.auth.AuthenticatorBrowser;
     
    3543                }
    3644        }
    37        
    38         public static void forgotPassword(Map<AuthenticationTag, String> userdata) {
    39                 String username = userdata.get(AuthenticationTag.Username);
    40                 String newpassword = userdata.get(AuthenticationTag.NewPassword);
    41                 //AuthenticatorBrowser.getInstance().putKey(label, password, key);
     45
     46        public static void generateAndDeliverIntergalacticNumber(Map<AuthenticationTag, String> userData) {
     47                String username = userData.get(AuthenticationTag.Username);
     48                String email = userData.get(AuthenticationTag.Email);
     49                try {
     50                        // Generate message text.
     51                        String intergalacticNumber = AuthenticatorBrowser.getInstance().newIntergalacticNumber(username, email);
     52                        String nl = System.getProperty("line.separator");
     53                        StringBuilder sb = new StringBuilder();
     54                        sb.append("You are receiving this email because someone is attempting to reset your Expeditee password." + nl);
     55                        sb.append("If you did not make this request then no action is required." + nl);
     56                        sb.append("If it was you who made this request, the following string of characters is your intergalactic number: " + intergalacticNumber + nl);
     57                       
     58                        // Establish properties for email.
     59                        Properties properties = System.getProperties();
     60                        properties.setProperty("mail.transport.protocol", "smtp");
     61                        properties.setProperty("mail.smtp.host", "smtp.gmail.com");
     62                        properties.setProperty("mail.smtp.port", "465");
     63                        properties.setProperty("mail.smtp.starttls.enable", "true");
     64                        properties.setProperty("mail.smtp.auth", "true");
     65                        properties.setProperty("mail.smtp.debug", "true");
     66                        properties.setProperty("mail.smtp.auth", "true");
     67                        properties.setProperty("mail.smtp.socketFactory.port", "465");
     68                        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
     69                        properties.setProperty("mail.smtp.socketFactory.fallback", "false");
     70                       
     71                        Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
     72                                @Override
     73                                protected PasswordAuthentication getPasswordAuthentication() {
     74                                        return new PasswordAuthentication("noreply.expeditee", "intergalacticnumber");
     75                                };
     76                        });
     77                       
     78                        // construct email message
     79                        final MimeMessage message = new MimeMessage(session);
     80                        message.setFrom(new InternetAddress("[email protected]"));
     81                        message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
     82                        message.setSubject("Expeditee Password Recovery");
     83                        message.setText(sb.toString());
     84                       
     85                        // send email message
     86                        Transport.send(message);               
     87                } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | ClassNotFoundException
     88                                | IOException | SQLException | MessagingException e) {
     89                        e.printStackTrace();
     90                }
    4291        }
    4392}
Note: See TracChangeset for help on using the changeset viewer.