From ea094a45b9a31076919ca23ba17e8ad27e90ebce Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 25 Apr 2012 17:01:00 -0400 Subject: [PATCH] Added a logout hook to IUserService --- src/com/gitblit/GitBlit.java | 12 ++++++++++++ src/com/gitblit/ConfigUserService.java | 9 +++++++++ src/com/gitblit/IUserService.java | 7 +++++++ src/com/gitblit/GitblitUserService.java | 5 +++++ src/com/gitblit/wicket/pages/LogoutPage.java | 6 +++++- src/com/gitblit/FileUserService.java | 9 +++++++++ 6 files changed, 47 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/ConfigUserService.java b/src/com/gitblit/ConfigUserService.java index 828ba76..f8eff9f 100644 --- a/src/com/gitblit/ConfigUserService.java +++ b/src/com/gitblit/ConfigUserService.java @@ -200,6 +200,15 @@ } /** + * Logout a user. + * + * @param user + */ + @Override + public void logout(UserModel user) { + } + + /** * Retrieve the user object for the specified username. * * @param username diff --git a/src/com/gitblit/FileUserService.java b/src/com/gitblit/FileUserService.java index b8d4a40..02cf2b0 100644 --- a/src/com/gitblit/FileUserService.java +++ b/src/com/gitblit/FileUserService.java @@ -178,6 +178,15 @@ } /** + * Logout a user. + * + * @param user + */ + @Override + public void logout(UserModel user) { + } + + /** * Retrieve the user object for the specified username. * * @param username diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 2b7ba3c..a616bef 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -481,6 +481,18 @@ response.addCookie(userCookie); } } + + /** + * Logout a user. + * + * @param user + */ + public void logout(UserModel user) { + if (userService == null) { + return; + } + userService.logout(user); + } /** * Returns the list of all users available to the login service. diff --git a/src/com/gitblit/GitblitUserService.java b/src/com/gitblit/GitblitUserService.java index ddb3ca7..7ad3db7 100644 --- a/src/com/gitblit/GitblitUserService.java +++ b/src/com/gitblit/GitblitUserService.java @@ -141,6 +141,11 @@ public UserModel authenticate(String username, char[] password) { return serviceImpl.authenticate(username, password); } + + @Override + public void logout(UserModel user) { + serviceImpl.logout(user); + } @Override public UserModel getUserModel(String username) { diff --git a/src/com/gitblit/IUserService.java b/src/com/gitblit/IUserService.java index 334bbed..c3573db 100644 --- a/src/com/gitblit/IUserService.java +++ b/src/com/gitblit/IUserService.java @@ -88,6 +88,13 @@ UserModel authenticate(String username, char[] password); /** + * Logout a user. + * + * @param user + */ + void logout(UserModel user); + + /** * Retrieve the user object for the specified username. * * @param username diff --git a/src/com/gitblit/wicket/pages/LogoutPage.java b/src/com/gitblit/wicket/pages/LogoutPage.java index 15ef0e6..4690ad1 100644 --- a/src/com/gitblit/wicket/pages/LogoutPage.java +++ b/src/com/gitblit/wicket/pages/LogoutPage.java @@ -19,13 +19,17 @@ import org.apache.wicket.protocol.http.WebResponse; import com.gitblit.GitBlit; +import com.gitblit.models.UserModel; import com.gitblit.wicket.GitBlitWebSession; public class LogoutPage extends WebPage { public LogoutPage() { - GitBlitWebSession.get().invalidate(); + GitBlitWebSession session = GitBlitWebSession.get(); + UserModel user = session.getUser(); GitBlit.self().setCookie((WebResponse) getResponse(), null); + GitBlit.self().logout(user); + session.invalidate(); setRedirect(true); setResponsePage(getApplication().getHomePage()); } -- Gitblit v1.9.1