Project

General

Profile

1
package eu.dnetlib.openaire.usermanagement;
2

    
3
import com.unboundid.ldap.sdk.LDAPException;
4
import eu.dnetlib.openaire.user.utils.EmailSender;
5
import eu.dnetlib.openaire.user.utils.LDAPActions;
6
import org.apache.log4j.Logger;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.stereotype.Component;
9
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
10

    
11
import javax.mail.MessagingException;
12
import javax.servlet.ServletConfig;
13
import javax.servlet.ServletException;
14
import javax.servlet.http.HttpServlet;
15
import javax.servlet.http.HttpServletRequest;
16
import javax.servlet.http.HttpServletResponse;
17
import java.io.IOException;
18

    
19
/**
20
 * Created by kiatrop on 2/10/2017.
21
 */
22
@Component
23
public class RemindUsernameServlet extends HttpServlet {
24

    
25
    public void init(ServletConfig config) throws ServletException {
26
        super.init(config);
27
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
28
                config.getServletContext());
29
    }
30

    
31
    @Autowired
32
    private LDAPActions ldapActions;
33

    
34
    @Autowired
35
    private EmailSender emailSender;
36

    
37
    private Logger logger = Logger.getLogger(RemindUsernameServlet.class);
38

    
39
    @Override
40
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
41
        String formEmail = request.getParameter("email").trim();
42

    
43
        if (formEmail == null){
44
            request.getSession().setAttribute("message", "Error reading email.");
45
            response.sendRedirect("./remindUsername.jsp");
46
        }
47

    
48
        try{
49
            String username = ldapActions.getUsername(formEmail);
50
            if (username != null && !username.isEmpty()) {
51

    
52
                String verificationCodeMsg = "<p>Hello,</p>" +
53
                        "<p> A username reminder has been requested for your OpenAIRE account.</p>" +
54
                        "<p> Your username is "+ username + ".</p>" +
55
                        "<p> Thank you </p>";
56

    
57
                String verificationCodeSubject = "Your OpenAIRE username";
58

    
59
                emailSender.sendEmail(formEmail, verificationCodeSubject, verificationCodeMsg);
60

    
61
                response.sendRedirect("./emailSuccess.jsp");
62

    
63
            } else {
64
                request.getSession().setAttribute("message", "User not found");
65
                response.sendRedirect("./remindUsername.jsp");
66
            }
67

    
68
        } catch (LDAPException ldape) {
69
            logger.error("Could not find user with email " + formEmail, ldape);
70
            response.sendRedirect("./error.jsp");
71

    
72
        } catch (MessagingException e) {
73
            logger.error("Error in sending email", e);
74
            response.sendRedirect("./error.jsp");
75
        }
76

    
77
    }
78

    
79
}
(5-5/7)