Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package servlet;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PrintWriter;
- import java.nio.charset.StandardCharsets;
- import java.security.PublicKey;
- import java.util.UUID;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.Cookie;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import util.RSASignature;
- @WebServlet(name = "Login", urlPatterns = "/login")
- public class Login extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String token = request.getParameter("token");
- PrintWriter out = response.getWriter();
- if (token == null) {
- out.println("fail - no token");
- out.flush();
- return;
- }
- InputStream publicKeyInputStream = getClass().getClassLoader().getResourceAsStream("key_rsa.pub");
- if (publicKeyInputStream == null) {
- out.println("fail - no public key");
- out.flush();
- return;
- }
- String publicKeyString = new String(publicKeyInputStream.readAllBytes(), StandardCharsets.UTF_8);
- try {
- PublicKey publicKey = util.RSAKeyGenerator.getPublicKey(publicKeyString);
- boolean isVerified = RSASignature.verify(request.getRemoteAddr(), token, publicKey);
- if(isVerified) {
- UUID uuid = UUID.randomUUID();
- String plainUUID = uuid.toString();
- Cookie cookie = new Cookie("uuid", plainUUID);
- cookie.setHttpOnly(true);
- cookie.setSecure(true);
- cookie.setPath("/");
- response.addCookie(cookie);
- request.getSession().setAttribute("uuid", uuid);
- out.println("");
- out.flush();
- return;
- } else {
- out.println("fail - invalid token");
- out.flush();
- return;
- }
- } catch (Exception e) {
- e.printStackTrace();
- out.println("fail - " + e.getLocalizedMessage());
- out.flush();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement