Make gitweb redirect to login
Make gitweb redirect to the login page if the user isn't currently logged in Change-Id: Ib5b30d433b7ae629da00c02de5abc9d6990c6fc1
This commit is contained in:
@@ -387,7 +387,7 @@ class GitWebServlet extends HttpServlet {
|
||||
// Allow anonymous users a chance to login.
|
||||
// Avoid leaking information by not distinguishing between
|
||||
// project not existing and no access rights.
|
||||
rsp.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
rsp.sendRedirect(getLoginRedirectUrl(req));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -408,6 +408,16 @@ class GitWebServlet extends HttpServlet {
|
||||
}
|
||||
}
|
||||
|
||||
private static String getLoginRedirectUrl(HttpServletRequest req) {
|
||||
String loginUrl = req.getContextPath() + "/login/";
|
||||
String token = req.getRequestURI().substring(1);
|
||||
String queryString = req.getQueryString();
|
||||
if (queryString != null && !queryString.isEmpty()) {
|
||||
token = token.concat("?" + queryString);
|
||||
}
|
||||
return (loginUrl + Url.encode(token));
|
||||
}
|
||||
|
||||
private static Map<String, String> getParameters(HttpServletRequest req) {
|
||||
final Map<String, String> params = new HashMap<>();
|
||||
for (final String pair : req.getQueryString().split("[&;]")) {
|
||||
|
Reference in New Issue
Block a user