From 87cc1ed60735a419a3ea23f20614fc0a3f9bab60 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 15 Apr 2011 17:18:51 -0400
Subject: [PATCH] Settings overhaul. Fixes to authentication. Bind interface feature.
---
src/com/gitblit/wicket/LoginPage.java | 35 ++++++++++++++++-------------------
1 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/com/gitblit/wicket/LoginPage.java b/src/com/gitblit/wicket/LoginPage.java
index e3a345c..3f8206e 100644
--- a/src/com/gitblit/wicket/LoginPage.java
+++ b/src/com/gitblit/wicket/LoginPage.java
@@ -1,24 +1,23 @@
package com.gitblit.wicket;
import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.StatelessForm;
import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.image.ContextImage;
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 org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import com.gitblit.Constants;
import com.gitblit.GitBlit;
+import com.gitblit.Keys;
public class LoginPage extends WebPage {
@@ -30,8 +29,7 @@
tryAutomaticLogin();
- add(new Label("title", getServerName()));
- add(new ContextImage("logo", "gitblt2.png"));
+ add(new Label("title", GitBlit.self().settings().getString(Keys.web.siteName, Constants.NAME)));
add(new Label("name", Constants.NAME));
Form<Void> loginForm = new LoginForm("loginForm");
@@ -41,17 +39,20 @@
add(loginForm);
}
- protected String getServerName() {
- ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();
- HttpServletRequest req = servletWebRequest.getHttpServletRequest();
- return req.getServerName();
- }
-
- class LoginForm extends Form<Void> {
+ class LoginForm extends StatelessForm<Void> {
private static final long serialVersionUID = 1L;
public LoginForm(String id) {
super(id);
+
+ // 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());
+ }
+
+ tryAutomaticLogin();
}
@Override
@@ -82,20 +83,16 @@
private void loginUser(User user) {
if (user != null) {
- GitBlitWebSession session = GitBlitWebSession.get();
+ // Set the user into the session
+ GitBlitWebSession.get().setUser(user);
// Set Cookie
WebResponse response = (WebResponse) getRequestCycle().getResponse();
GitBlit.self().setCookie(response, user);
- // track user object so that we do not have to continue
- // re-authenticating on each request.
- session.setUser(user);
-
- // Redirect to original page OR to first available tab
if (!continueToOriginalDestination()) {
// Redirect to home page
- setResponsePage(session.getApplication().getHomePage());
+ setResponsePage(getApplication().getHomePage());
}
}
}
--
Gitblit v1.9.1