Feature/unicode groupname validation (#1600)

Allow all UTF-8 characters except URL identifiers as user and group names and for namespaces.

Fixes #1513

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
This commit is contained in:
Eduard Heimbuch
2021-03-25 09:59:23 +01:00
committed by GitHub
parent 8f2272885b
commit 22a0362892
20 changed files with 299 additions and 358 deletions

View File

@@ -43,9 +43,12 @@ public class CustomNamespaceStrategy implements NamespaceStrategy {
doThrow()
.violation("invalid namespace", "namespace")
.when(
!ValidationUtil.isRepositoryNameValid(namespace)
!ValidationUtil.isNameValid(namespace)
|| ONE_TO_THREE_DIGITS.matcher(namespace).matches()
|| namespace.equals("create"));
|| namespace.equals("create")
|| namespace.equals("import")
|| namespace.equals("..")
);
return namespace;
}

View File

@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package sonia.scm.repository;
import org.apache.shiro.SecurityUtils;
@@ -32,6 +32,6 @@ public class UsernameNamespaceStrategy implements NamespaceStrategy {
@Override
public String createNamespace(Repository repository) {
return SecurityUtils.getSubject().getPrincipal().toString();
return SecurityUtils.getSubject().getPrincipal().toString().replaceAll("\\s", "_");
}
}