package org.wso2.iot.firealarm.access;
import org.wso2.iot.firealarm.access.api.AccessTokenClient;
import org.wso2.iot.firealarm.access.api.AccessTokenException;
import org.wso2.iot.firealarm.access.api.AccessTokenInfo;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.UUID;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
//UserAgent + ClientIP + '
String userAgent = request.getHeader("User-Agent");
if (userAgent == null) {
userAgent = username;
}
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
String salt = UUID.randomUUID().toString();
String instanceId = userAgent + ipAddress + salt;
AccessTokenClient client = null;
// AccessTokenClient client = AccessTokenClient.getInstance();
AccessTokenInfo accessTokenInfo;
try {
client = new AccessTokenClient();
accessTokenInfo = client.getAccessToken(username, password, instanceId);
if (accessTokenInfo != null) {
request.getSession(true).setAttribute("token", accessTokenInfo.getAccess_token());
request.getSession(true).setAttribute("username", username);
request.getSession(true).removeAttribute("password");
request.getRequestDispatcher("control.jsp").forward(request, response);
} else {
request.setAttribute("errMsg", "Invalid Credential");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
} catch (AccessTokenException e) {
request.setAttribute("errMsg", "Invalid Credential");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.sendRedirect("index.jsp");
}
}