From bb949f38af6e48831b924bbe193c4c2c2e1da849 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 22 Aug 2014 22:28:33 +0200 Subject: [PATCH] [Minor] Added check for user's referencing inexistant oles --- .../privilege/handler/XmlPersistenceHandler.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java b/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java index d94c6b246..dc21d5b91 100644 --- a/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java +++ b/src/main/java/ch/eitchnet/privilege/handler/XmlPersistenceHandler.java @@ -189,6 +189,19 @@ public class XmlPersistenceHandler implements PersistenceHandler { logger.info(MessageFormat.format("Read {0} Users", this.userMap.size())); //$NON-NLS-1$ logger.info(MessageFormat.format("Read {0} Roles", this.roleMap.size())); //$NON-NLS-1$ + // validate referenced roles exist + for (User user : users) { + for (String roleName : user.getRoles()) { + + // validate that role exists + if (getRole(roleName) == null) { + String msg = "Role {0} does not exist referenced by user {1}"; + msg = MessageFormat.format(msg, roleName, user.getUsername()); //$NON-NLS-1$ + throw new PrivilegeException(msg); + } + } + } + // validate we have a user with PrivilegeAdmin access boolean privilegeAdminExists = false; for (String username : this.userMap.keySet()) {