[Minor] moved exceptions to base package

Exceptions were previously in package i18n, this didn't make sense, so
they were move to base
This commit is contained in:
Robert von Burg 2012-12-01 00:04:45 +01:00
parent eac0782810
commit f73d829822
18 changed files with 61 additions and 49 deletions

View File

@ -17,7 +17,7 @@
* along with Privilege. If not, see <http://www.gnu.org/licenses/>. * along with Privilege. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
package ch.eitchnet.privilege.i18n; package ch.eitchnet.privilege.base;
/** /**
* Exception thrown if access is denied during login, or if a certain privilege is not granted * Exception thrown if access is denied during login, or if a certain privilege is not granted

View File

@ -17,7 +17,7 @@
* along with Privilege. If not, see <http://www.gnu.org/licenses/>. * along with Privilege. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
package ch.eitchnet.privilege.i18n; package ch.eitchnet.privilege.base;
/** /**
* Main {@link RuntimeException} thrown if something goes wrong in Privilege * Main {@link RuntimeException} thrown if something goes wrong in Privilege

View File

@ -28,9 +28,9 @@ import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.helper.HashHelper; import ch.eitchnet.privilege.helper.HashHelper;
import ch.eitchnet.privilege.helper.XmlConstants; import ch.eitchnet.privilege.helper.XmlConstants;
import ch.eitchnet.privilege.i18n.PrivilegeException;
/** /**
* <p> * <p>

View File

@ -31,9 +31,9 @@ import java.util.Set;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.base.AccessDeniedException;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.helper.ClassHelper; import ch.eitchnet.privilege.helper.ClassHelper;
import ch.eitchnet.privilege.i18n.AccessDeniedException;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.Certificate; import ch.eitchnet.privilege.model.Certificate;
import ch.eitchnet.privilege.model.PrivilegeRep; import ch.eitchnet.privilege.model.PrivilegeRep;
import ch.eitchnet.privilege.model.Restrictable; import ch.eitchnet.privilege.model.Restrictable;
@ -718,7 +718,8 @@ public class DefaultPrivilegeHandler implements PrivilegeHandler {
DefaultPrivilegeHandler.logger.info("User " + username + " authenticated: " + session); DefaultPrivilegeHandler.logger.info("User " + username + " authenticated: " + session);
} catch (RuntimeException e) { } catch (RuntimeException e) {
DefaultPrivilegeHandler.logger.error("User " + username + " Failed to authenticate: " + e.getLocalizedMessage()); DefaultPrivilegeHandler.logger.error("User " + username + " Failed to authenticate: "
+ e.getLocalizedMessage());
throw e; throw e;
} finally { } finally {
clearPassword(password); clearPassword(password);
@ -786,7 +787,8 @@ public class DefaultPrivilegeHandler implements PrivilegeHandler {
Role role = this.persistenceHandler.getRole(roleName); Role role = this.persistenceHandler.getRole(roleName);
if (role == null) { if (role == null) {
DefaultPrivilegeHandler.logger.error("No role is defined with name " + roleName + " which is configured for user " + user); DefaultPrivilegeHandler.logger.error("No role is defined with name " + roleName
+ " which is configured for user " + user);
continue; continue;
} }
@ -1188,7 +1190,8 @@ public class DefaultPrivilegeHandler implements PrivilegeHandler {
this.sessionMap.put(sessionId, new CertificateSessionPair(session, systemUserCertificate)); this.sessionMap.put(sessionId, new CertificateSessionPair(session, systemUserCertificate));
// log // log
DefaultPrivilegeHandler.logger.info("The system user " + systemUsername + " is logged in with session " + session); DefaultPrivilegeHandler.logger.info("The system user " + systemUsername + " is logged in with session "
+ session);
return systemUserCertificate; return systemUserCertificate;
} }

View File

@ -118,7 +118,7 @@ public interface PersistenceHandler {
/** /**
* Informs this {@link PersistenceHandler} to persist any changes which need to be saved * Informs this {@link PersistenceHandler} to persist any changes which need to be saved
* *
* @return true if changes were persisted successfully, false if something went wrong * @return true if changes were persisted successfully, false if nothing needed to be persisted
*/ */
public boolean persist(); public boolean persist();

View File

@ -22,8 +22,8 @@ package ch.eitchnet.privilege.handler;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import ch.eitchnet.privilege.i18n.AccessDeniedException; import ch.eitchnet.privilege.base.AccessDeniedException;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.model.Certificate; import ch.eitchnet.privilege.model.Certificate;
import ch.eitchnet.privilege.model.PrivilegeRep; import ch.eitchnet.privilege.model.PrivilegeRep;
import ch.eitchnet.privilege.model.Restrictable; import ch.eitchnet.privilege.model.Restrictable;
@ -401,7 +401,7 @@ public interface PrivilegeHandler {
* </p> * </p>
* *
* <p> * <p>
* If the user is not the administrator, then a {@link ch.eitchnet.privilege.i18n.PrivilegeException} is thrown * If the user is not the administrator, then a {@link ch.eitchnet.privilege.base.PrivilegeException} is thrown
* </p> * </p>
* *
* @param certificate * @param certificate

View File

@ -35,9 +35,9 @@ import org.dom4j.Element;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.helper.XmlConstants; import ch.eitchnet.privilege.helper.XmlConstants;
import ch.eitchnet.privilege.helper.XmlHelper; import ch.eitchnet.privilege.helper.XmlHelper;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.UserState; import ch.eitchnet.privilege.model.UserState;
import ch.eitchnet.privilege.model.internal.Privilege; import ch.eitchnet.privilege.model.internal.Privilege;
import ch.eitchnet.privilege.model.internal.Role; import ch.eitchnet.privilege.model.internal.Role;
@ -150,11 +150,13 @@ public class XmlPersistenceHandler implements PersistenceHandler {
throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter "
+ XmlConstants.XML_PARAM_MODEL_FILE + " is invalid"); + XmlConstants.XML_PARAM_MODEL_FILE + " is invalid");
} }
// get model file // get model file
File modelFile = new File(this.modelPath); File modelFile = new File(this.modelPath);
boolean modelFileUnchanged = modelFile.exists() && modelFile.lastModified() == this.modelsFileDate; boolean modelFileUnchanged = modelFile.exists() && modelFile.lastModified() == this.modelsFileDate;
if (!(modelFileUnchanged && this.roleMapDirty && this.userMapDirty)) { if (modelFileUnchanged && !this.roleMapDirty && !this.userMapDirty) {
XmlPersistenceHandler.logger.warn("Not persisting as current file is unchanged and model data is not dirty"); XmlPersistenceHandler.logger
.warn("Not persisting as current file is unchanged and model data is not dirty");
return false; return false;
} }
@ -181,19 +183,14 @@ public class XmlPersistenceHandler implements PersistenceHandler {
} }
rootElement.add(rolesElement); rootElement.add(rolesElement);
// reset dirty states and return if something was dirty, false otherwise // now write the file
if (this.userMapDirty || this.roleMapDirty) { XmlHelper.writeElement(rootElement, modelFile);
this.userMapDirty = false;
this.roleMapDirty = false;
return true;
}
// reset dirty states
this.userMapDirty = false; this.userMapDirty = false;
this.roleMapDirty = false; this.roleMapDirty = false;
return false; return true;
} }
/** /**
@ -259,10 +256,13 @@ public class XmlPersistenceHandler implements PersistenceHandler {
* @see ch.eitchnet.privilege.handler.PersistenceHandler#initialize(java.util.Map) * @see ch.eitchnet.privilege.handler.PersistenceHandler#initialize(java.util.Map)
*/ */
@Override @Override
public void initialize(Map<String, String> parameterMap) { public void initialize(Map<String, String> paramsMap) {
// copy parameter map
this.parameterMap = Collections.unmodifiableMap(new HashMap<String, String>(paramsMap));
// get and validate base bath // get and validate base bath
String basePath = parameterMap.get(XmlConstants.XML_PARAM_BASE_PATH); String basePath = this.parameterMap.get(XmlConstants.XML_PARAM_BASE_PATH);
File basePathF = new File(basePath); File basePathF = new File(basePath);
if (!basePathF.exists() && !basePathF.isDirectory()) { if (!basePathF.exists() && !basePathF.isDirectory()) {
throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter "
@ -270,7 +270,7 @@ public class XmlPersistenceHandler implements PersistenceHandler {
} }
// get model file name // get model file name
String modelFileName = parameterMap.get(XmlConstants.XML_PARAM_MODEL_FILE); String modelFileName = this.parameterMap.get(XmlConstants.XML_PARAM_MODEL_FILE);
if (modelFileName == null || modelFileName.isEmpty()) { if (modelFileName == null || modelFileName.isEmpty()) {
throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter " throw new PrivilegeException("[" + PersistenceHandler.class.getName() + "] Defined parameter "
+ XmlConstants.XML_PARAM_MODEL_FILE + " is invalid"); + XmlConstants.XML_PARAM_MODEL_FILE + " is invalid");
@ -321,9 +321,11 @@ public class XmlPersistenceHandler implements PersistenceHandler {
for (Element roleElement : rolesElementList) { for (Element roleElement : rolesElementList) {
String roleName = roleElement.getTextTrim(); String roleName = roleElement.getTextTrim();
if (roleName.isEmpty()) { if (roleName.isEmpty()) {
XmlPersistenceHandler.logger.error("User " + username + " has a role defined with no name, Skipped."); XmlPersistenceHandler.logger.error("User " + username
+ " has a role defined with no name, Skipped.");
} else if (!this.roleMap.containsKey(roleName)) { } else if (!this.roleMap.containsKey(roleName)) {
XmlPersistenceHandler.logger.error("User " + username + " has a inexistant role " + roleName + ", Skipped."); XmlPersistenceHandler.logger.error("User " + username + " has a inexistant role " + roleName
+ ", Skipped.");
} else { } else {
roles.add(roleName); roles.add(roleName);
} }

View File

@ -19,7 +19,7 @@
*/ */
package ch.eitchnet.privilege.helper; package ch.eitchnet.privilege.helper;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
/** /**
* The {@link ClassHelper} class is a helper to instantiate classes using reflection * The {@link ClassHelper} class is a helper to instantiate classes using reflection

View File

@ -29,11 +29,11 @@ import org.dom4j.Element;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.handler.DefaultPrivilegeHandler; import ch.eitchnet.privilege.handler.DefaultPrivilegeHandler;
import ch.eitchnet.privilege.handler.EncryptionHandler; import ch.eitchnet.privilege.handler.EncryptionHandler;
import ch.eitchnet.privilege.handler.PersistenceHandler; import ch.eitchnet.privilege.handler.PersistenceHandler;
import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.handler.PrivilegeHandler;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.policy.PrivilegePolicy; import ch.eitchnet.privilege.policy.PrivilegePolicy;
import ch.eitchnet.utils.helper.StringHelper; import ch.eitchnet.utils.helper.StringHelper;

View File

@ -37,7 +37,7 @@ import org.dom4j.io.XMLWriter;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
/** /**
* Helper class for performing XML based tasks using Dom4J * Helper class for performing XML based tasks using Dom4J

View File

@ -23,8 +23,8 @@ import java.io.Serializable;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.handler.PrivilegeHandler;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.internal.Session; import ch.eitchnet.privilege.model.internal.Session;
/** /**

View File

@ -22,8 +22,8 @@ package ch.eitchnet.privilege.model;
import java.io.Serializable; import java.io.Serializable;
import java.util.Set; import java.util.Set;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.handler.PrivilegeHandler;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.internal.Privilege; import ch.eitchnet.privilege.model.internal.Privilege;
import ch.eitchnet.privilege.model.internal.Role; import ch.eitchnet.privilege.model.internal.Role;
import ch.eitchnet.privilege.policy.PrivilegePolicy; import ch.eitchnet.privilege.policy.PrivilegePolicy;

View File

@ -23,8 +23,8 @@ import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.handler.PrivilegeHandler;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.PrivilegeRep; import ch.eitchnet.privilege.model.PrivilegeRep;
import ch.eitchnet.privilege.model.Restrictable; import ch.eitchnet.privilege.model.Restrictable;
import ch.eitchnet.privilege.policy.PrivilegePolicy; import ch.eitchnet.privilege.policy.PrivilegePolicy;

View File

@ -23,7 +23,7 @@ import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.model.PrivilegeRep; import ch.eitchnet.privilege.model.PrivilegeRep;
import ch.eitchnet.privilege.model.RoleRep; import ch.eitchnet.privilege.model.RoleRep;

View File

@ -19,8 +19,8 @@
*/ */
package ch.eitchnet.privilege.model.internal; package ch.eitchnet.privilege.model.internal;
import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.handler.PrivilegeHandler;
import ch.eitchnet.privilege.i18n.PrivilegeException;
import ch.eitchnet.privilege.model.Certificate; import ch.eitchnet.privilege.model.Certificate;
/** /**

View File

@ -26,7 +26,7 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.model.UserRep; import ch.eitchnet.privilege.model.UserRep;
import ch.eitchnet.privilege.model.UserState; import ch.eitchnet.privilege.model.UserState;
@ -91,9 +91,6 @@ public final class User {
if (username == null || username.isEmpty()) { if (username == null || username.isEmpty()) {
throw new PrivilegeException("No username defined!"); throw new PrivilegeException("No username defined!");
} }
// password may be null, meaning not able to login
if (firstname == null || firstname.isEmpty()) { if (firstname == null || firstname.isEmpty()) {
throw new PrivilegeException("No firstname defined!"); throw new PrivilegeException("No firstname defined!");
} }
@ -104,9 +101,10 @@ public final class User {
throw new PrivilegeException("No userState defined!"); throw new PrivilegeException("No userState defined!");
} }
// password may be null, meaning not able to login
// roles may be null, meaning not able to login and must be added later // roles may be null, meaning not able to login and must be added later
// locale may be null, meaning use system default
// local may be null, meaning use system default // properties may be null, meaning no properties
this.userId = userId; this.userId = userId;
@ -117,11 +115,20 @@ public final class User {
this.firstname = firstname; this.firstname = firstname;
this.surname = surname; this.surname = surname;
this.roles = Collections.unmodifiableSet(roles); if (roles == null)
this.roles = Collections.emptySet();
else
this.roles = Collections.unmodifiableSet(roles);
this.locale = locale; if (locale == null)
this.locale = Locale.getDefault();
else
this.locale = locale;
this.propertyMap = Collections.unmodifiableMap(propertyMap); if (propertyMap == null)
this.propertyMap = Collections.emptyMap();
else
this.propertyMap = Collections.unmodifiableMap(propertyMap);
} }
/** /**

View File

@ -19,8 +19,8 @@
*/ */
package ch.eitchnet.privilege.policy; package ch.eitchnet.privilege.policy;
import ch.eitchnet.privilege.i18n.AccessDeniedException; import ch.eitchnet.privilege.base.AccessDeniedException;
import ch.eitchnet.privilege.i18n.PrivilegeException; import ch.eitchnet.privilege.base.PrivilegeException;
import ch.eitchnet.privilege.model.Restrictable; import ch.eitchnet.privilege.model.Restrictable;
import ch.eitchnet.privilege.model.internal.Privilege; import ch.eitchnet.privilege.model.internal.Privilege;
import ch.eitchnet.privilege.model.internal.Role; import ch.eitchnet.privilege.model.internal.Role;

View File

@ -19,7 +19,7 @@
*/ */
package ch.eitchnet.privilege.policy; package ch.eitchnet.privilege.policy;
import ch.eitchnet.privilege.i18n.AccessDeniedException; import ch.eitchnet.privilege.base.AccessDeniedException;
import ch.eitchnet.privilege.model.Restrictable; import ch.eitchnet.privilege.model.Restrictable;
import ch.eitchnet.privilege.model.internal.Privilege; import ch.eitchnet.privilege.model.internal.Privilege;
import ch.eitchnet.privilege.model.internal.Role; import ch.eitchnet.privilege.model.internal.Role;