diff --git a/source/java/org/alfresco/web/bean/LoginBean.java b/source/java/org/alfresco/web/bean/LoginBean.java index 64dbbae9a6..0874477dd9 100644 --- a/source/java/org/alfresco/web/bean/LoginBean.java +++ b/source/java/org/alfresco/web/bean/LoginBean.java @@ -214,11 +214,11 @@ public class LoginBean implements Serializable { int minPasswordLength = Application.getClientConfig(context).getMinPasswordLength(); - String pass = (String) value; - if (pass.length() < minPasswordLength || pass.length() > 32) + String pass = (String)value; + if (pass.length() < minPasswordLength || pass.length() > 256) { String err = MessageFormat.format(Application.getMessage(context, MSG_PASSWORD_LENGTH), - new Object[]{minPasswordLength, 32}); + new Object[]{minPasswordLength, 256}); throw new ValidatorException(new FacesMessage(err)); } } @@ -230,20 +230,19 @@ public class LoginBean implements Serializable throws ValidatorException { int minUsernameLength = Application.getClientConfig(context).getMinUsernameLength(); - - String name = (String) value; - name = name.trim(); - + + String name = ((String)value).trim(); + if (name.length() < minUsernameLength || name.length() > 256) { String err = MessageFormat.format(Application.getMessage(context, MSG_USERNAME_LENGTH), new Object[]{minUsernameLength, 256}); throw new ValidatorException(new FacesMessage(err)); } - if (name.indexOf('\'') != -1 || name.indexOf('"') != -1 || name.indexOf('\\') != -1) + if (name.indexOf('"') != -1) { String err = MessageFormat.format(Application.getMessage(context, MSG_USER_ERR), - new Object[]{"', \", \\"}); + new Object[]{"\""}); throw new ValidatorException(new FacesMessage(err)); } } @@ -426,12 +425,11 @@ public class LoginBean implements Serializable private static final String MSG_ERROR_UNKNOWN_USER = "error_login_user"; private static final String MSG_ERROR_LOGIN_DISALLOWED = "error_login_disallowed"; private static final String MSG_ERROR_LOGIN_MAXUSERS = "error_login_maxusers"; - private static final String MSG_USERNAME_CHARS = "login_err_username_chars"; - private static final String MSG_USERNAME_LENGTH = "login_err_username_length"; - private static final String MSG_PASSWORD_CHARS = "login_err_password_chars"; - private static final String MSG_PASSWORD_LENGTH = "login_err_password_length"; - private static final String MSG_USER_ERR = "user_err_user_name"; - + + public static final String MSG_USERNAME_LENGTH = "login_err_username_length"; + public static final String MSG_PASSWORD_LENGTH = "login_err_password_length"; + public static final String MSG_USER_ERR = "user_err_user_name"; + public static final String LOGIN_REDIRECT_KEY = "_alfRedirect"; public static final String LOGIN_EXTERNAL_AUTH= "_alfExternalAuth"; diff --git a/source/java/org/alfresco/web/bean/actions/handlers/MailHandler.java b/source/java/org/alfresco/web/bean/actions/handlers/MailHandler.java index b30f64decf..8353b76355 100644 --- a/source/java/org/alfresco/web/bean/actions/handlers/MailHandler.java +++ b/source/java/org/alfresco/web/bean/actions/handlers/MailHandler.java @@ -95,7 +95,8 @@ public class MailHandler extends BaseActionHandler } } - public void prepareForEdit(Map actionProps, + @SuppressWarnings("unchecked") +public void prepareForEdit(Map actionProps, Map repoProps) { // get hold of the current wizard so we can extract some data from it @@ -114,10 +115,26 @@ public class MailHandler extends BaseActionHandler { actionProps.put(PROP_TO, to); } - else - { - List recipients = (List)repoProps.get(MailActionExecuter.PARAM_TO_MANY); - if (recipients != null && recipients.size() != 0) + else + { + Object recipObj = repoProps.get(MailActionExecuter.PARAM_TO_MANY); + + List recipients = null; + + if ( recipObj != null) + { + if ( recipObj instanceof String) + { + recipients = new ArrayList(); + recipients.add((String) recipObj); + } + else if ( recipObj instanceof List) + { + recipients = (List) recipObj; + } + } + + if (recipients != null && recipients.size() != 0) { // rebuild the list of RecipientWrapper objects from the stored action for (String authority : recipients) diff --git a/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java b/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java index 80568670e8..28d563c23e 100644 --- a/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java +++ b/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java @@ -55,6 +55,7 @@ public class CreateGroupDialog extends BaseDialogBean private static final String MSG_ROOT_GROUPS = "root_groups"; private static final String MSG_BUTTON_NEW_GROUP = "new_group"; + // ------------------------------------------------------------------------------ // Dialog implementation @@ -112,6 +113,7 @@ public class CreateGroupDialog extends BaseDialogBean return subtitle; } + // ------------------------------------------------------------------------------ // Bean property getters and setters @@ -135,13 +137,14 @@ public class CreateGroupDialog extends BaseDialogBean */ protected AuthorityService getAuthService() { - //check for null in cluster environment if (authService == null) { authService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthorityService(); } return authService; } + + // ------------------------------------------------------------------------------ // Helpers @@ -149,10 +152,10 @@ public class CreateGroupDialog extends BaseDialogBean { String name = (String) value; - if (name.indexOf('\'') != -1 || name.indexOf('"') != -1 || name.indexOf('\\') != -1) + if (name.indexOf('"') != -1 || name.indexOf('\\') != -1) { String err = MessageFormat.format(Application.getMessage(context, MSG_ERR_NAME), - new Object[] { "', \", \\" }); + new Object[] { "\", \\" }); throw new ValidatorException(new FacesMessage(err)); } } diff --git a/source/java/org/alfresco/web/bean/repository/Node.java b/source/java/org/alfresco/web/bean/repository/Node.java index 88db1d3551..0500f282d0 100644 --- a/source/java/org/alfresco/web/bean/repository/Node.java +++ b/source/java/org/alfresco/web/bean/repository/Node.java @@ -109,6 +109,14 @@ public class Node implements Serializable for (QName qname: props.keySet()) { Serializable propValue = props.get(qname); + + // Lists returned from the node service could be unmodifiable, + // therefore create copies for modification purposes + if (propValue instanceof List) + { + propValue = new ArrayList((List)propValue); + } + this.properties.put(qname.toString(), propValue); } diff --git a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java index b3e277c032..bd4b7686e8 100644 --- a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java +++ b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java @@ -54,6 +54,7 @@ import org.alfresco.util.Pair; import org.alfresco.web.app.Application; import org.alfresco.web.app.context.UIContextService; import org.alfresco.web.app.servlet.FacesHelper; +import org.alfresco.web.bean.LoginBean; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.spaces.CreateSpaceWizard; import org.alfresco.web.bean.wizard.BaseWizardBean; @@ -113,13 +114,13 @@ public class CreateUserWizard extends BaseWizardBean /** ContentUsageService bean reference */ transient private ContentUsageService contentUsageService; - /** ref to the company home space folder */ private NodeRef companyHomeSpaceRef = null; /** ref to the default home location */ private NodeRef defaultHomeSpaceRef; + /** * @param authenticationService The AuthenticationService to set. */ @@ -128,13 +129,11 @@ public class CreateUserWizard extends BaseWizardBean this.authenticationService = authenticationService; } - /** * @return authenticationService */ private AuthenticationService getAuthenticationService() { - //check for null for cluster environment if (authenticationService == null) { authenticationService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthenticationService(); @@ -142,8 +141,6 @@ public class CreateUserWizard extends BaseWizardBean return authenticationService; } - - /** * @param personService The person service. */ @@ -152,13 +149,11 @@ public class CreateUserWizard extends BaseWizardBean this.personService = personService; } - /** * @return personService */ private PersonService getPersonService() { - //check for null for cluster environment if (personService == null) { personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService(); @@ -166,7 +161,6 @@ public class CreateUserWizard extends BaseWizardBean return personService; } - /** * @param tenantService The tenantService to set. */ @@ -180,7 +174,6 @@ public class CreateUserWizard extends BaseWizardBean */ private TenantService getTenantService() { - //check for null for cluster environment if(tenantService == null) { tenantService = (TenantService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "tenantService"); @@ -201,7 +194,6 @@ public class CreateUserWizard extends BaseWizardBean */ private PermissionService getPermissionService() { - //check for null for cluster environment if (permissionService == null) { permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService(); @@ -222,7 +214,6 @@ public class CreateUserWizard extends BaseWizardBean */ private OwnableService getOwnableService() { - //check for null for cluster environment if (ownableService == null) { ownableService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getOwnableService(); @@ -243,7 +234,6 @@ public class CreateUserWizard extends BaseWizardBean */ private ContentUsageService getContentUsageService() { - //check for null for cluster environment if (contentUsageService == null) { contentUsageService = (ContentUsageService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "ContentUsageService"); @@ -255,9 +245,9 @@ public class CreateUserWizard extends BaseWizardBean * Initialises the wizard */ @Override - public void init(Map arg0) + public void init(Map params) { - super.init(arg0); + super.init(params); // reset all variables this.firstName = ""; @@ -606,21 +596,15 @@ public class CreateUserWizard extends BaseWizardBean */ public void validatePassword(FacesContext context, UIComponent component, Object value) throws ValidatorException { - String pass = (String) value; - if (pass.length() < 5 || pass.length() > 12) + int minPasswordLength = Application.getClientConfig(context).getMinPasswordLength(); + + String pass = (String)value; + if (pass.length() < minPasswordLength || pass.length() > 256) { - String err = "Password must be between 5 and 12 characters in length."; + String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_PASSWORD_LENGTH), + new Object[]{minPasswordLength, 256}); throw new ValidatorException(new FacesMessage(err)); } - - for (int i = 0; i < pass.length(); i++) - { - if (Character.isLetterOrDigit(pass.charAt(i)) == false) - { - String err = "Password can only contain characters or digits."; - throw new ValidatorException(new FacesMessage(err)); - } - } } /** @@ -628,20 +612,20 @@ public class CreateUserWizard extends BaseWizardBean */ public void validateUsername(FacesContext context, UIComponent component, Object value) throws ValidatorException { - String pass = (String) value; - if (pass.length() < 5 || pass.length() > 12) + int minUsernameLength = Application.getClientConfig(context).getMinUsernameLength(); + + String name = ((String)value).trim(); + if (name.length() < minUsernameLength || name.length() > 256) { - String err = "Username must be between 5 and 12 characters in length."; + String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_USERNAME_LENGTH), + new Object[]{minUsernameLength, 256}); throw new ValidatorException(new FacesMessage(err)); } - - for (int i = 0; i < pass.length(); i++) + if (name.indexOf('"') != -1 || name.indexOf('\\') != -1) { - if (Character.isLetterOrDigit(pass.charAt(i)) == false) - { - String err = "Username can only contain characters or digits."; - throw new ValidatorException(new FacesMessage(err)); - } + String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_USER_ERR), + new Object[]{"\", \\"}); + throw new ValidatorException(new FacesMessage(err)); } } diff --git a/source/web/jsp/admin/export.jsp b/source/web/jsp/admin/export.jsp index 9087ec9ab8..78cbe73c81 100644 --- a/source/web/jsp/admin/export.jsp +++ b/source/web/jsp/admin/export.jsp @@ -77,7 +77,7 @@ onkeyup="javascript:checkButtonState();" /> - +<%----%> diff --git a/source/web/jsp/wcm/create-webapp.jsp b/source/web/jsp/wcm/create-webapp.jsp index 93603769a7..1ddcb0427e 100644 --- a/source/web/jsp/wcm/create-webapp.jsp +++ b/source/web/jsp/wcm/create-webapp.jsp @@ -92,7 +92,7 @@ - @@ -106,7 +106,7 @@ - +