From 22fc5e48cbe050d8485f78f6165b59e4085eaeef Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 25 Jun 2011 17:10:59 -0400 Subject: [PATCH] Moved Build classes to their own package --- src/com/gitblit/wicket/pages/LoginPage.java | 35 +++++++++++++++++++++++++++++++---- 1 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/wicket/pages/LoginPage.java b/src/com/gitblit/wicket/pages/LoginPage.java index 56e979c..6ee72db 100644 --- a/src/com/gitblit/wicket/pages/LoginPage.java +++ b/src/com/gitblit/wicket/pages/LoginPage.java @@ -15,7 +15,10 @@ */ package com.gitblit.wicket.pages; +import javax.servlet.http.Cookie; + import org.apache.wicket.PageParameters; +import org.apache.wicket.RestartResponseException; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.PasswordTextField; @@ -24,6 +27,8 @@ import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; +import org.apache.wicket.protocol.http.WebRequest; +import org.apache.wicket.protocol.http.WebResponse; import com.gitblit.Constants; import com.gitblit.GitBlit; @@ -42,15 +47,18 @@ // If we are already logged in because user directly accessed // the login url, redirect to the home page if (GitBlitWebSession.get().isLoggedIn()) { - setRedirect(true); - setResponsePage(getApplication().getHomePage()); + throw new RestartResponseException(getApplication().getHomePage()); } - + + if (GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) { + loginByCookie(); + } + add(new Label("title", GitBlit.getString(Keys.web.siteName, Constants.NAME))); add(new Label("name", Constants.NAME)); StatelessForm<Void> loginForm = new StatelessForm<Void>("loginForm") { - + private static final long serialVersionUID = 1L; @Override @@ -72,11 +80,30 @@ add(loginForm); } + private void loginByCookie() { + UserModel user = null; + + // Grab cookie from Browser Session + Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies(); + if (cookies != null && cookies.length > 0) { + user = GitBlit.self().authenticate(cookies); + } + + // Login the user + loginUser(user); + } + private void loginUser(UserModel user) { if (user != null) { // Set the user into the session GitBlitWebSession.get().setUser(user); + // Set Cookie + if (GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) { + WebResponse response = (WebResponse) getRequestCycle().getResponse(); + GitBlit.self().setCookie(response, user); + } + if (!continueToOriginalDestination()) { // Redirect to home page setResponsePage(getApplication().getHomePage()); -- Gitblit v1.9.1