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