diff options
author | James Moger <james.moger@gitblit.com> | 2014-09-25 09:17:44 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-09-25 09:17:44 -0400 |
commit | 219722e27a5832b33d2fad7cd5649015ea3523a8 (patch) | |
tree | 41147ec35e9118bc2415bc41c4f9a9d433273bfd /src/main/java/com/gitblit/manager | |
parent | bfc22d47158b685ff8c6a686faf0f213a65fa0e1 (diff) | |
parent | ec7ed84b04cd3981ae01b104bd52fc010f31e6a7 (diff) | |
download | gitblit-219722e27a5832b33d2fad7cd5649015ea3523a8.tar.gz gitblit-219722e27a5832b33d2fad7cd5649015ea3523a8.zip |
Merge branch 'ticket/187' into develop
Diffstat (limited to 'src/main/java/com/gitblit/manager')
3 files changed, 69 insertions, 2 deletions
diff --git a/src/main/java/com/gitblit/manager/AuthenticationManager.java b/src/main/java/com/gitblit/manager/AuthenticationManager.java index ccf03c0b..6c198fea 100644 --- a/src/main/java/com/gitblit/manager/AuthenticationManager.java +++ b/src/main/java/com/gitblit/manager/AuthenticationManager.java @@ -458,7 +458,20 @@ public class AuthenticationManager implements IAuthenticationManager { * @param user */ @Override + @Deprecated public void setCookie(HttpServletResponse response, UserModel user) { + setCookie(null, response, user); + } + + /** + * Sets a cookie for the specified user. + * + * @param request + * @param response + * @param user + */ + @Override + public void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user) { if (settings.getBoolean(Keys.web.allowCookieAuthentication, true)) { GitBlitWebSession session = GitBlitWebSession.get(); boolean standardLogin = session.authenticationType.isStandard(); @@ -481,7 +494,13 @@ public class AuthenticationManager implements IAuthenticationManager { userCookie.setMaxAge((int) TimeUnit.DAYS.toSeconds(7)); } } - userCookie.setPath("/"); + String path = "/"; + if (request != null) { + if (!StringUtils.isEmpty(request.getContextPath())) { + path = request.getContextPath(); + } + } + userCookie.setPath(path); response.addCookie(userCookie); } } @@ -490,11 +509,25 @@ public class AuthenticationManager implements IAuthenticationManager { /** * Logout a user. * + * @param response * @param user */ @Override + @Deprecated public void logout(HttpServletResponse response, UserModel user) { - setCookie(response, null); + setCookie(null, response, null); + } + + /** + * Logout a user. + * + * @param request + * @param response + * @param user + */ + @Override + public void logout(HttpServletRequest request, HttpServletResponse response, UserModel user) { + setCookie(request, response, null); } /** diff --git a/src/main/java/com/gitblit/manager/GitblitManager.java b/src/main/java/com/gitblit/manager/GitblitManager.java index 38a18efb..2c883af2 100644 --- a/src/main/java/com/gitblit/manager/GitblitManager.java +++ b/src/main/java/com/gitblit/manager/GitblitManager.java @@ -665,16 +665,28 @@ public class GitblitManager implements IGitblit { } @Override + @Deprecated public void setCookie(HttpServletResponse response, UserModel user) { authenticationManager.setCookie(response, user); } @Override + public void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user) { + authenticationManager.setCookie(request, response, user); + } + + @Override + @Deprecated public void logout(HttpServletResponse response, UserModel user) { authenticationManager.logout(response, user); } @Override + public void logout(HttpServletRequest request, HttpServletResponse response, UserModel user) { + authenticationManager.logout(request, response, user); + } + + @Override public boolean supportsCredentialChanges(UserModel user) { return authenticationManager.supportsCredentialChanges(user); } diff --git a/src/main/java/com/gitblit/manager/IAuthenticationManager.java b/src/main/java/com/gitblit/manager/IAuthenticationManager.java index 2665b439..3600b325 100644 --- a/src/main/java/com/gitblit/manager/IAuthenticationManager.java +++ b/src/main/java/com/gitblit/manager/IAuthenticationManager.java @@ -85,17 +85,39 @@ public interface IAuthenticationManager extends IManager { * @param user * @since 1.4.0 */ + @Deprecated void setCookie(HttpServletResponse response, UserModel user); /** + * Sets a cookie for the specified user. + * + * @param request + * @param response + * @param user + * @since 1.6.1 + */ + void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user); + + /** * Logout a user. * * @param user * @since 1.4.0 */ + @Deprecated void logout(HttpServletResponse response, UserModel user); /** + * Logout a user. + * + * @param request + * @param response + * @param user + * @since 1.6.1 + */ + void logout(HttpServletRequest request, HttpServletResponse response, UserModel user); + + /** * Does the user service support changes to credentials? * * @return true or false |