From 2cdb8a77fff3577cdb4885ea4c7e6c1cccad28eb Mon Sep 17 00:00:00 2001 From: Peter Hormanns Date: Fri, 20 May 2011 14:25:45 +0000 Subject: [PATCH] Database Namen pruefen --- .../hsadmin/mods/db/MySqlDatabaseModuleImpl.java | 14 ++++++++++++++ .../de/hsadmin/mods/db/MySqlUserModuleImpl.java | 10 +++++++++- .../hsadmin/mods/db/PgSqlDatabaseModuleImpl.java | 14 ++++++++++++++ .../de/hsadmin/mods/db/PgSqlUserModuleImpl.java | 15 +++++++++++++++ .../hsadmin/mods/email/EMailAliasModuleImpl.java | 8 ++++---- 5 files changed, 56 insertions(+), 5 deletions(-) diff --git a/hsarback/src/de/hsadmin/mods/db/MySqlDatabaseModuleImpl.java b/hsarback/src/de/hsadmin/mods/db/MySqlDatabaseModuleImpl.java index 167488e..ff8b392 100644 --- a/hsarback/src/de/hsadmin/mods/db/MySqlDatabaseModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/db/MySqlDatabaseModuleImpl.java @@ -21,6 +21,20 @@ public class MySqlDatabaseModuleImpl extends AbstractModuleImpl { return super.search(entityClass, condition, orderBy); } + @Override + public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException { + MySqlDatabase database = (MySqlDatabase) newEntity; + String name = database.getName(); + String pacname = database.getPac().getName(); + if (!name.startsWith(pacname) || name.length() < 7) { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + if (name.charAt(5) != '_') { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + return super.add(newEntity); + } + @Override public AbstractEntity update(AbstractEntity existingEntity) throws HSAdminException { EntityManager em = getTransaction().getEntityManager(); diff --git a/hsarback/src/de/hsadmin/mods/db/MySqlUserModuleImpl.java b/hsarback/src/de/hsadmin/mods/db/MySqlUserModuleImpl.java index e3a8094..ae7ade2 100644 --- a/hsarback/src/de/hsadmin/mods/db/MySqlUserModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/db/MySqlUserModuleImpl.java @@ -12,7 +12,15 @@ public class MySqlUserModuleImpl extends AbstractModuleImpl { @Override public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException { MySqlUser user = (MySqlUser) newEntity; - if (user.getName().length() > 16) { + String name = user.getName(); + if (name.length() > 16) { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + String pacname = user.getPac().getName(); + if (!name.startsWith(pacname) || name.length() < 7) { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + if (name.charAt(5) != '_') { throw new AuthorisationException(getLoginUser(), "add", newEntity); } return super.add(newEntity); diff --git a/hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseModuleImpl.java b/hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseModuleImpl.java index 475d387..236ab45 100644 --- a/hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseModuleImpl.java @@ -20,6 +20,20 @@ public class PgSqlDatabaseModuleImpl extends AbstractModuleImpl { return super.search(entityClass, condition, orderBy); } + @Override + public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException { + PgSqlDatabase database = (PgSqlDatabase) newEntity; + String name = database.getName(); + String pacname = database.getPac().getName(); + if (!name.startsWith(pacname) || name.length() < 7) { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + if (name.charAt(5) != '_') { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + return super.add(newEntity); + } + @Override public AbstractEntity update(AbstractEntity existingEntity) throws HSAdminException { EntityManager em = getTransaction().getEntityManager(); diff --git a/hsarback/src/de/hsadmin/mods/db/PgSqlUserModuleImpl.java b/hsarback/src/de/hsadmin/mods/db/PgSqlUserModuleImpl.java index 74057ab..5ced202 100644 --- a/hsarback/src/de/hsadmin/mods/db/PgSqlUserModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/db/PgSqlUserModuleImpl.java @@ -4,10 +4,25 @@ import java.util.List; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.AbstractModuleImpl; +import de.hsadmin.core.model.AuthorisationException; import de.hsadmin.core.model.HSAdminException; public class PgSqlUserModuleImpl extends AbstractModuleImpl { + @Override + public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException { + PgSqlUser user = (PgSqlUser) newEntity; + String name = user.getName(); + String pacname = user.getPac().getName(); + if (!name.startsWith(pacname) || name.length() < 7) { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + if (name.charAt(5) != '_') { + throw new AuthorisationException(getLoginUser(), "add", newEntity); + } + return super.add(newEntity); + } + @Override public List search(Class entityClass, String condition, String orderBy) throws HSAdminException { diff --git a/hsarback/src/de/hsadmin/mods/email/EMailAliasModuleImpl.java b/hsarback/src/de/hsadmin/mods/email/EMailAliasModuleImpl.java index bdf9b63..cda6019 100644 --- a/hsarback/src/de/hsadmin/mods/email/EMailAliasModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/email/EMailAliasModuleImpl.java @@ -2,9 +2,9 @@ package de.hsadmin.mods.email; import java.util.List; -import de.hsadmin.core.model.AbstractModuleImpl; import de.hsadmin.core.model.AbstractEntity; -import de.hsadmin.core.model.AuthenticationException; +import de.hsadmin.core.model.AbstractModuleImpl; +import de.hsadmin.core.model.AuthorisationException; import de.hsadmin.core.model.HSAdminException; public class EMailAliasModuleImpl extends AbstractModuleImpl { @@ -24,10 +24,10 @@ public class EMailAliasModuleImpl extends AbstractModuleImpl { String name = alias.getName(); String pacname = alias.getPac().getName(); if (!name.startsWith(pacname)) { - throw new AuthenticationException("alias not allowed"); + throw new AuthorisationException(getLoginUser(), "add", newEntity); } if (name.length() > 5 && (name.charAt(5) != '-') || name.length() == 6) { - throw new AuthenticationException("alias not allowed"); + throw new AuthorisationException(getLoginUser(), "add", newEntity); } return super.add(newEntity); }