From dc52fd5335d6b59be341e4f2f5583651653b309b Mon Sep 17 00:00:00 2001
From: gnaegi <none@none>
Date: Tue, 11 Oct 2016 20:38:52 +0200
Subject: [PATCH] OO-2273 check openid provider length

---
 .../ui/AddOpenIDConnectIFFullConfigurableController.java | 9 +++++++++
 .../olat/login/oauth/ui/_i18n/LocalStrings_de.properties | 1 +
 .../olat/login/oauth/ui/_i18n/LocalStrings_en.properties | 3 ++-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/login/oauth/ui/AddOpenIDConnectIFFullConfigurableController.java b/src/main/java/org/olat/login/oauth/ui/AddOpenIDConnectIFFullConfigurableController.java
index b665cf1285d..336bdd8db75 100644
--- a/src/main/java/org/olat/login/oauth/ui/AddOpenIDConnectIFFullConfigurableController.java
+++ b/src/main/java/org/olat/login/oauth/ui/AddOpenIDConnectIFFullConfigurableController.java
@@ -19,6 +19,9 @@
  */
 package org.olat.login.oauth.ui;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
@@ -30,6 +33,7 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.ValidationStatus;
 import org.olat.login.oauth.OAuthLoginModule;
 import org.olat.login.oauth.OAuthSPI;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -69,6 +73,8 @@ public class AddOpenIDConnectIFFullConfigurableController extends FormBasicContr
 		openIdConnectIFDefaultEl.addActionListener(FormEvent.ONCHANGE);
 		
 		openIdConnectIFName = uifactory.addTextElement("openidconnectif.name", "openidconnectif.name", 256, "", formLayout);
+		openIdConnectIFName.setMaxLength(8);
+		openIdConnectIFName.setRegexMatchCheck("[a-zA-Z0-9._-]{3,8}", "openidconnectif.name.error");
 		openIdConnectIFDisplayName = uifactory.addTextElement("openidconnectif.displayname", "openidconnectif.displayname", 256, "", formLayout);
 
 		openIdConnectIFApiKeyEl = uifactory.addTextElement("openidconnectif.id", "openidconnectif.api.id", 256, "", formLayout);
@@ -95,6 +101,9 @@ public class AddOpenIDConnectIFFullConfigurableController extends FormBasicContr
 	protected boolean validateFormLogic(UserRequest ureq) {
 		boolean allOk = true;
 		allOk &= validate(openIdConnectIFName);
+		List<ValidationStatus> nameValidation = new ArrayList<ValidationStatus>();
+		openIdConnectIFName.validate(nameValidation);
+		allOk &= nameValidation.isEmpty();  
 		allOk &= validate(openIdConnectIFDisplayName);
 		allOk &= validate(openIdConnectIFApiKeyEl);
 		allOk &= validate(openIdConnectIFApiSecretEl);
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
index dcce2b06681..dbf18748f0e 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
@@ -55,6 +55,7 @@ openidconnectif.enabled=Open ID Connect
 openidconnectif.issuer=Issuer
 openidconnectif.issuer.example=https\://frentix.com
 openidconnectif.name=Provider name
+openidconnectif.name.error=Bitte verwenden Sie nur a-z A-Z 0-9 . - _. Der Name muss mindestens drei und darf maximal 8 Zeichen lange sein. 
 openidconnectif.displayname=Display name
 openidconnectif.wait.message=Sie werden in wenigen Augenblicken zum OpenOLAT Dienst weitergeleitet.
 twitter.admin.title=Twitter Konfiguration
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
index 67ad49999aa..bf5ec106c22 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
@@ -54,7 +54,8 @@ openidconnectif.enabled=Open ID Connect
 openidconnectif.issuer=Issuer
 openidconnectif.issuer.example=https\://frentix.com
 openidconnectif.name=Provider name
-openidconnectif.displayname=Display name
+oopenidconnectif.name.error=Please use only a-z A-Z 0-9 . - _. The name must have at least 3 and a maximum of 8 characters.
+penidconnectif.displayname=Display name
 openidconnectif.wait.message=You will be redirected to OpenOLAT momentarily.
 twitter.admin.title=Twitter configuration
 twitter.api.id=Consumer key (App key)
-- 
GitLab