[SDC-29] rebase continue work to align source
[sdc.git] / utils / webseal-simulator / src / main / java / org / openecomp / sdc / webseal / simulator / Login.java
1 package org.openecomp.sdc.webseal.simulator;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.Collection;
6 import java.util.Iterator;
7
8 import javax.servlet.ServletConfig;
9 import javax.servlet.ServletException;
10 import javax.servlet.http.Cookie;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15 import org.openecomp.sdc.webseal.simulator.User;
16 import org.openecomp.sdc.webseal.simulator.conf.Conf;
17
18 public class Login extends HttpServlet {
19
20         private static final long serialVersionUID = 1L;
21
22         @Override
23         public void init(final ServletConfig config) throws ServletException {
24                 super.init(config);
25         }
26
27         @Override
28         protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
29                         throws ServletException, IOException {
30
31                 if (null != request.getParameter("userId")) {
32                         doPost(request, response);
33                         return;
34                 }
35                 System.out.println("about to build login page");
36                 response.setContentType("text/html");
37                 PrintWriter writer = response.getWriter();
38                 String message = (String) request.getAttribute("message");
39                 if (message == null) {
40                         message = "";
41                 }
42
43                 Collection<User> allUsers = Conf.getInstance().getUsers().values();
44                 writer.println("<html>");
45                 
46                 writer.println("<head>");
47                 writer.println("<style>");
48                 writer.println("body {padding: 40px; font-family: Arial; font-size: 14px;}");
49                 writer.println("h1 {background-color: #DDDDDD; padding: 4px 10px;}");
50                 writer.println("h2 {margin-top: 20px;}");
51                 writer.println(".label {width: 100px; float:left;}");
52                 writer.println(".break {display: block; margin-bottom: 10px;}");
53                 writer.println("tr {padding: 4px 10px;}");
54                 writer.println("th {padding: 4px 10px; text-align: left; background-color: #dddddd;}");
55                 writer.println("td {padding: 4px 10px; text-align: left;}");
56                 writer.println("</style>");     
57                 writer.println("</head>");
58                 
59                 writer.println("<body>");
60                 
61                 writer.println("<h1>Webseal simulator</h1>");
62                 writer.println("<h2>Login:</h2>");
63                 
64                 writer.println("<form action=\"\" method=\"post\">");
65                 writer.println("  <div class='label'>User id:</div>");
66                 writer.println("  <input type='text' name='userId'>");
67                 writer.println("  <div class='break'></div>");
68                 
69                 writer.println("  <div class='label'>Password:</div>");
70                 writer.println("  <input type='password' name='password'>");
71                 writer.println("  <div class='break'></div>");
72                 
73                 writer.println("  <input type='submit' value='Login'>");
74                 writer.println("  <label name='message'></label>");
75                 writer.println("</form>");
76                 
77                 writer.println("<hr/>");
78                 writer.println("<h2>Quick links:</h2>");
79                 writer.println("<table>");
80                 writer.println("<tr>");
81                 writer.println("<th>full name</th>");
82                 writer.println("<th>user id</th>");
83                 writer.println("<th>role</th>");
84                 writer.println("<th>action</th>");
85                 writer.println("</tr>");
86                 Iterator<User> iterator = allUsers.iterator();
87                 while (iterator.hasNext()) {
88                         User user = iterator.next();
89                         writer.println("<tr>");
90                         writer.println("<td>" + user.getUserRef() + "</td>");
91                         writer.println("<td>" + user.getUserId() + "</td>");
92                         writer.println("<td>" + user.getRole() + "</td>");
93                         writer.println("<td>" + user.getUserCreateRef() + "</td>");
94                         writer.println("</tr>");
95                 }
96                 writer.println("</table>");     
97
98                 writer.println("<a href='create?all=true' target='resultFrame'>Create All</a>");
99                 writer.println("<hr/><iframe name='resultFrame' width='400' height='300'></iframe>");   
100                 
101                 writer.println("</body>");
102                 writer.println("</html>");
103                 
104         }
105
106         public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
107
108                 String userId = request.getParameter("userId");
109                 String password = request.getParameter("password");
110                 request.setAttribute("message", "OK");
111
112                 System.out.println("Login -> doPOst userId=" + userId);
113                 User user = getUser(userId, password);
114                 if (user == null) {
115                         request.setAttribute("message", "ERROR: userId or password incorect");
116                         doGet(request, response);
117                 } else {
118                         System.out.println("Login -> doPOst redirext to /sdc1 (to proxy)");
119                         Cookie cookieUser = new Cookie("HTTP_IV_USER", user.getUserId());
120                         Cookie cookieUserId = new Cookie("USER_ID", user.getUserId());
121                         Cookie cookieFirstName = new Cookie("HTTP_CSP_FIRSTNAME", user.getFirstName());
122                         Cookie cookieEmail = new Cookie("HTTP_CSP_EMAIL", user.getEmail());
123                         Cookie cookieLastName = new Cookie("HTTP_CSP_LASTNAME", user.getLastName());
124                         Cookie cookieRemoteAddress = new Cookie("HTTP_IV_REMOTE_ADDRESS", "0.0.0.0");
125                         Cookie cookieWsType = new Cookie("HTTP_CSP_WSTYPE", "Intranet");
126                         response.addCookie(cookieUser);
127                         response.addCookie(cookieUserId);
128                         response.addCookie(cookieFirstName);
129                         response.addCookie(cookieEmail);
130                         response.addCookie(cookieLastName);
131                         response.addCookie(cookieRemoteAddress);
132                         response.addCookie(cookieWsType);
133                         response.sendRedirect("/sdc1");
134                 }
135
136         }
137
138         private User getUser(String userId, String password) {
139                 User user = Conf.getInstance().getUsers().get(userId);
140                 if (user == null) {
141                         return null;
142                 }
143                 if (!password.equals(user.getPassword())) {
144                         return null;
145                 }
146                 return user;
147         }
148
149         @Override
150         public String getServletInfo() {
151                 return "Http Proxy Servlet";
152         }
153 }