@@ -199,6 +199,15 @@ public class ConfigUserService implements IUserService { | |||
return returnedUser; | |||
} | |||
/** | |||
* Logout a user. | |||
* | |||
* @param user | |||
*/ | |||
@Override | |||
public void logout(UserModel user) { | |||
} | |||
/** | |||
* Retrieve the user object for the specified username. | |||
* |
@@ -177,6 +177,15 @@ public class FileUserService extends FileSettings implements IUserService { | |||
return returnedUser; | |||
} | |||
/** | |||
* Logout a user. | |||
* | |||
* @param user | |||
*/ | |||
@Override | |||
public void logout(UserModel user) { | |||
} | |||
/** | |||
* Retrieve the user object for the specified username. | |||
* |
@@ -481,6 +481,18 @@ public class GitBlit implements ServletContextListener { | |||
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. |
@@ -141,6 +141,11 @@ public class GitblitUserService implements IUserService { | |||
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) { |
@@ -87,6 +87,13 @@ public interface IUserService { | |||
*/ | |||
UserModel authenticate(String username, char[] password); | |||
/** | |||
* Logout a user. | |||
* | |||
* @param user | |||
*/ | |||
void logout(UserModel user); | |||
/** | |||
* Retrieve the user object for the specified username. | |||
* |
@@ -19,13 +19,17 @@ import org.apache.wicket.markup.html.WebPage; | |||
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()); | |||
} |