From a3d5f290a6862d704114599fecfa480e89950452 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 1 Aug 2016 12:25:41 +0200 Subject: [PATCH] Fixed session expiring and added logout page --- pages/index.html | 6 +++-- .../norbipeti/chat/server/IOHelper.java | 4 +-- src/io/github/norbipeti/chat/server/Main.java | 2 +- .../chat/server/page/LogoutPage.java | 25 +++++++++++++++++++ 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 src/io/github/norbipeti/chat/server/page/LogoutPage.java diff --git a/pages/index.html b/pages/index.html index 21ec873..da8bce9 100644 --- a/pages/index.html +++ b/pages/index.html @@ -14,8 +14,10 @@
diff --git a/src/io/github/norbipeti/chat/server/IOHelper.java b/src/io/github/norbipeti/chat/server/IOHelper.java index 6aa4ac9..de28363 100644 --- a/src/io/github/norbipeti/chat/server/IOHelper.java +++ b/src/io/github/norbipeti/chat/server/IOHelper.java @@ -120,8 +120,8 @@ public class IOHelper { ZonedDateTime expiretime = ZonedDateTime.now(ZoneId.of("GMT")).plus(Period.of(2, 0, 0)); exchange.getResponseHeaders().add("Set-Cookie", "user_id=" + user.getId() + "; expires=" + expiretime.format(DateTimeFormatter.RFC_1123_DATE_TIME)); - exchange.getResponseHeaders().add("Set-Cookie", - "session_id=" + user.getSessionid() + "; expires=" + expiretime); + exchange.getResponseHeaders().add("Set-Cookie", "session_id=" + user.getSessionid() + "; expires=" + + expiretime.format(DateTimeFormatter.RFC_1123_DATE_TIME)); } public static void LogoutUser(HttpExchange exchange, User user) { diff --git a/src/io/github/norbipeti/chat/server/Main.java b/src/io/github/norbipeti/chat/server/Main.java index 0a9d71d..6445a2c 100644 --- a/src/io/github/norbipeti/chat/server/Main.java +++ b/src/io/github/norbipeti/chat/server/Main.java @@ -70,7 +70,7 @@ public class Main { provider.save(user2); User loggedinuser = new User(); loggedinuser.setName("NorbiPeti"); - loggedinuser.setSessionid("8b148304-5dd6-48dd-a1a3-c8e47bcfc44b"); + loggedinuser.setSessionid("093b1395-8c31-4f3b-ba67-828a755af92e"); loggedinuser.setEmail("sznp@asd.com"); convo.getUsers().add(loggedinuser); loggedinuser.getConversations().add(convo); diff --git a/src/io/github/norbipeti/chat/server/page/LogoutPage.java b/src/io/github/norbipeti/chat/server/page/LogoutPage.java new file mode 100644 index 0000000..c5e5f96 --- /dev/null +++ b/src/io/github/norbipeti/chat/server/page/LogoutPage.java @@ -0,0 +1,25 @@ +package io.github.norbipeti.chat.server.page; + +import java.io.IOException; + +import com.sun.net.httpserver.HttpExchange; + +import io.github.norbipeti.chat.server.IOHelper; +import io.github.norbipeti.chat.server.db.domain.User; + +public class LogoutPage extends Page { + + @Override + public String GetName() { + return "logout"; + } + + @Override + public void handlePage(HttpExchange exchange) throws IOException { + User user = IOHelper.GetLoggedInUser(exchange); + if (user != null) + IOHelper.LogoutUser(exchange, user); + IOHelper.Redirect("/", exchange); + } + +}