From 51b9b7f9016899bbf8a39f6bc33a916a3d2b3838 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Sun, 21 May 2017 22:50:48 +0200 Subject: [PATCH 1/4] Fix nullpointer exception with unsupported URL protocol #1237 --- src/main/java/com/gitblit/manager/ServicesManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gitblit/manager/ServicesManager.java b/src/main/java/com/gitblit/manager/ServicesManager.java index b993eb66b..74f58c65a 100644 --- a/src/main/java/com/gitblit/manager/ServicesManager.java +++ b/src/main/java/com/gitblit/manager/ServicesManager.java @@ -276,7 +276,7 @@ public int compare(RepositoryUrl o1, RepositoryUrl o2) { Iterator itr = list.iterator(); while (itr.hasNext()) { RepositoryUrl url = itr.next(); - if (url.transport.equals(preferredTransport)) { + if (url.transport != null && url.transport.equals(preferredTransport)) { itr.remove(); preferredUrl = url; break; From c3e317a28899915036517c3a05a2b883796f633d Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Mon, 22 May 2017 00:29:08 +0200 Subject: [PATCH 2/4] Add feedback to SSH Key Form. #1226 if key is empty of can not be parsed, form did provide any feedback to user before --- src/main/java/com/gitblit/wicket/GitBlitWebApp.properties | 2 ++ .../java/com/gitblit/wicket/GitBlitWebApp_de.properties | 2 ++ src/main/java/com/gitblit/wicket/pages/BasePage.java | 2 +- src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java | 8 ++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties index c46bd63dd..d8a58943e 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties @@ -739,6 +739,8 @@ gb.emailAddressDescription = The primary email address for receiving notificatio gb.sshKeys = SSH Keys gb.sshKeysDescription = SSH public key authentication is a secure alternative to password authentication gb.addSshKey = Add SSH Key +gb.addSshKeyErrorEmpty = SSH public key empty. Please provide a valid SSH public key +gb.addSshKeyErrorFormat = Not a valid SSH public key format. Please provide a valid SSH public key gb.key = Key gb.comment = Comment gb.sshKeyCommentDescription = Enter an optional comment. If blank, the comment will be extracted from the key data. diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties index 9599f7eb5..3f873cc1d 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp_de.properties @@ -736,6 +736,8 @@ gb.emailAddressDescription = Die prim\u00e4re Emailadresse f\u00fcr den Empfang gb.sshKeys = SSH Keys gb.sshKeysDescription = SSH Public Key Authentifizierung ist eine sichere Alternative zur Authentifizierung mit Passwort gb.addSshKey = SSH Key hinzuf\u00fcgen +gb.addSshKeyErrorEmpty = SSH Public Key leer. Bitte geben Sie einen g\u00fltigen SSH Public Key an +gb.addSshKeyErrorFormat = SSH Public Key Format ungültig. Bitte geben Sie einen g\u00fltigen SSH Public Key an gb.key = Key gb.comment = Kommentar gb.sshKeyCommentDescription = Geben Sie optional einen Kommentar ein. Falls Sie dies nicht tun, wird der Kommentar aus dem Key extrahiert. diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java index 0d99f5e52..bb97ee8cc 100644 --- a/src/main/java/com/gitblit/wicket/pages/BasePage.java +++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java @@ -251,7 +251,7 @@ protected void setupPage(String repositoryName, String pageName) { add(rootLink); // Feedback panel for info, warning, and non-fatal error messages - add(new FeedbackPanel("feedback")); + add(new FeedbackPanel("feedback").setOutputMarkupId(true)); add(new Label("gbVersion", "v" + Constants.getVersion())); if (app().settings().getBoolean(Keys.web.aggressiveHeapManagement, false)) { diff --git a/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java b/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java index 4b8787630..629c58eb6 100644 --- a/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java @@ -24,6 +24,7 @@ import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; @@ -123,6 +124,9 @@ public void onClick(AjaxRequestTarget target) { "span5", keyComment)); +// final FeedbackPanel feedback = new FeedbackPanel("feedback"); +// feedback.setOutputMarkupId(true); +// addKeyForm.add(feedback); addKeyForm.add(new AjaxButton("addKeyButton") { private static final long serialVersionUID = 1L; @@ -134,6 +138,8 @@ protected void onSubmit(AjaxRequestTarget target, Form form) { String data = keyData.getObject(); if (StringUtils.isEmpty(data)) { // do not submit empty key + error(getString("gb.addSshKeyErrorEmpty")); + target.addComponent(getPage().get("feedback")); return; } @@ -142,6 +148,8 @@ protected void onSubmit(AjaxRequestTarget target, Form form) { key.getPublicKey(); } catch (Exception e) { // failed to parse the key + error(getString("gb.addSshKeyErrorFormat")); + target.addComponent(getPage().get("feedback")); return; } From fc854d6819c9d28fae94435aa3d46cea4e169af0 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Mon, 22 May 2017 00:39:49 +0200 Subject: [PATCH 3/4] Revert "Fix nullpointer exception with unsupported URL protocol #1237" This reverts commit 51b9b7f9016899bbf8a39f6bc33a916a3d2b3838. --- src/main/java/com/gitblit/manager/ServicesManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gitblit/manager/ServicesManager.java b/src/main/java/com/gitblit/manager/ServicesManager.java index 74f58c65a..b993eb66b 100644 --- a/src/main/java/com/gitblit/manager/ServicesManager.java +++ b/src/main/java/com/gitblit/manager/ServicesManager.java @@ -276,7 +276,7 @@ public int compare(RepositoryUrl o1, RepositoryUrl o2) { Iterator itr = list.iterator(); while (itr.hasNext()) { RepositoryUrl url = itr.next(); - if (url.transport != null && url.transport.equals(preferredTransport)) { + if (url.transport.equals(preferredTransport)) { itr.remove(); preferredUrl = url; break; From 31a4c54b86db8e2ac0a5694a8e7afc9af3108ec9 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Mon, 22 May 2017 00:42:47 +0200 Subject: [PATCH 4/4] Remove unused code --- src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java b/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java index 629c58eb6..c0e57c355 100644 --- a/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/SshKeysPanel.java @@ -24,7 +24,6 @@ import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.ListDataProvider; @@ -124,9 +123,6 @@ public void onClick(AjaxRequestTarget target) { "span5", keyComment)); -// final FeedbackPanel feedback = new FeedbackPanel("feedback"); -// feedback.setOutputMarkupId(true); -// addKeyForm.add(feedback); addKeyForm.add(new AjaxButton("addKeyButton") { private static final long serialVersionUID = 1L;