aboutsummaryrefslogtreecommitdiffstats
path: root/utils/webseal-simulator/src/main/java/org/openecomp/sdc/webseal/simulator/Login.java
blob: a19b94094b4bae8829aa8afef31b60dff0da3fad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package org.openecomp.sdc.webseal.simulator;

import org.openecomp.sdc.webseal.simulator.conf.Conf;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Iterator;

public class Login extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	public void init(final ServletConfig config) throws ServletException {
		super.init(config);
	}

	@Override
	protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
			throws ServletException, IOException {

		if (null != request.getParameter("userId")) {
			doPost(request, response);
			return;
		}
		System.out.println("about to build login page");
		response.setContentType("text/html");
		PrintWriter writer = response.getWriter();
		String message = (String) request.getAttribute("message");
		if (message == null) {
			message = "";
		}

		Collection<User> allUsers = Conf.getInstance().getUsers().values();
		writer.println("<html>");
		
		writer.println("<head>");
		writer.println("<style>");
		writer.println("body {padding: 40px; font-family: Arial; font-size: 14px;}");
		writer.println("h1 {background-color: #DDDDDD; padding: 4px 10px;}");
		writer.println("h2 {margin-top: 20px;}");
		writer.println(".label {width: 100px; float:left;}");
		writer.println(".break {display: block; margin-bottom: 10px;}");
		writer.println("tr {padding: 4px 10px;}");
		writer.println("th {padding: 4px 10px; text-align: left; background-color: #dddddd;}");
		writer.println("td {padding: 4px 10px; text-align: left;}");
		writer.println("</style>");	
		writer.println("</head>");
		
		writer.println("<body>");
		
		writer.println("<h1>Webseal simulator</h1>");
		writer.println("<h2>Login:</h2>");
		
		writer.println("<form action=\"\" method=\"post\">");
		writer.println("  <div class='label'>User id:</div>");
		writer.println("  <input type='text' name='userId'>");
		writer.println("  <div class='break'></div>");
		
		writer.println("  <div class='label'>Password:</div>");
		writer.println("  <input type='password' name='password'>");
		writer.println("  <div class='break'></div>");
		
		writer.println("  <input type='submit' value='Login'>");
		writer.println("  <label name='message'></label>");
		writer.println("</form>");
		
		writer.println("<hr/>");
		writer.println("<h2>Quick links:</h2>");
		writer.println("<table>");
		writer.println("<tr>");
		writer.println("<th>full name</th>");
		writer.println("<th>user id</th>");
		writer.println("<th>role</th>");
		writer.println("<th>action</th>");
		writer.println("</tr>");
		Iterator<User> iterator = allUsers.iterator();
		while (iterator.hasNext()) {
			User user = iterator.next();
			writer.println("<tr>");
			writer.println("<td>" + user.getUserRef() + "</td>");
			writer.println("<td>" + user.getUserId() + "</td>");
			writer.println("<td>" + user.getRole() + "</td>");
			writer.println("<td>" + user.getUserCreateRef() + "</td>");
			writer.println("</tr>");
		}
		writer.println("</table>");	

		writer.println("<a href='create?all=true' target='resultFrame'>Create All</a>");
		writer.println("<hr/><iframe name='resultFrame' width='400' height='300'></iframe>");	
		
		writer.println("</body>");
		writer.println("</html>");
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String userId = request.getParameter("userId");
		String password = request.getParameter("password");
		request.setAttribute("message", "OK");

		System.out.println("Login -> doPOst userId=" + userId);
		User user = getUser(userId, password);
		if (user == null) {
			response.sendError(500, "ERROR: userId or password incorrect");
//			doGet(request, response);
		} else {
			System.out.println("Login -> doPOst redirext to /sdc1 (to proxy)");
			Cookie cookieUser = new Cookie("HTTP_IV_USER", user.getUserId());
			Cookie cookieUserId = new Cookie("USER_ID", user.getUserId());
			Cookie cookieFirstName = new Cookie("HTTP_CSP_FIRSTNAME", user.getFirstName());
			Cookie cookieEmail = new Cookie("HTTP_CSP_EMAIL", user.getEmail());
			Cookie cookieLastName = new Cookie("HTTP_CSP_LASTNAME", user.getLastName());
			Cookie cookieRemoteAddress = new Cookie("HTTP_IV_REMOTE_ADDRESS", "0.0.0.0");
			Cookie cookieWsType = new Cookie("HTTP_CSP_WSTYPE", "Intranet");
			response.addCookie(cookieUser);
			response.addCookie(cookieUserId);
			response.addCookie(cookieFirstName);
			response.addCookie(cookieEmail);
			response.addCookie(cookieLastName);
			response.addCookie(cookieRemoteAddress);
			response.addCookie(cookieWsType);
			response.sendRedirect("/sdc1");
		}

	}

	private User getUser(String userId, String password) {
		User user = Conf.getInstance().getUsers().get(userId);
		if (user == null) {
			return null;
		}
		if (!password.equals(user.getPassword())) {
			return null;
		}
		return user;
	}

	@Override
	public String getServletInfo() {
		return "Http Proxy Servlet";
	}
}