Author: agilliland
Date: Mon May 21 16:28:27 2007
New Revision: 540354
URL: http://svn.apache.org/viewvc?view=rev&rev=540354
Log:
more validation improvements, this time cleaning up validation on core actions.
Added:
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
Modified:
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java
roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java
Added:
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml?view=auto&rev=540354
==============================================================================
---
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
(added)
+++
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
Mon May 21 16:28:27 2007
@@ -0,0 +1,71 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+<validators>
+
+ <field name="bean.handle">
+ <field-validator type="requiredstring">
+ <message key="CreateWeblog.error.handleNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="CreateWeblog.error.handleSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.name">
+ <field-validator type="requiredstring">
+ <message key="CreateWeblog.error.nameNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="CreateWeblog.error.nameSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.description">
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="CreateWeblog.error.descriptionSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.emailAddress">
+ <field-validator type="requiredstring">
+ <message key="CreateWeblog.error.emailAddressNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="CreateWeblog.error.emailAddressSize">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="email">
+ <message key="CreateWeblog.error.emailAddressBad">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.locale">
+ <field-validator type="requiredstring">
+ <message key="CreateWeblog.error.localeNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="CreateWeblog.error.localeSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.timeZone">
+ <field-validator type="requiredstring">
+ <message key="CreateWeblog.error.timeZoneNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="CreateWeblog.error.timeZoneSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
(original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java Mon
May 21 16:28:27 2007
@@ -33,6 +33,7 @@
import org.apache.roller.pojos.WebsiteData;
import org.apache.roller.ui.core.util.struts2.UIAction;
import org.apache.roller.util.Utilities;
+import org.apache.struts2.interceptor.validation.SkipValidation;
/**
@@ -56,6 +57,7 @@
}
+ @SkipValidation
public String execute() {
UserData user = getAuthenticatedUser();
@@ -85,6 +87,7 @@
}
+ @SkipValidation
public String cancel() {
return "cancel";
}
@@ -93,7 +96,6 @@
public String save() {
UserData user = getAuthenticatedUser();
-
try {
if (!RollerConfig.getBooleanProperty("groupblogging.enabled")) {
UserManager mgr = RollerFactory.getRoller().getUserManager();
@@ -110,7 +112,6 @@
log.error("error checking for existing weblogs count", ex);
}
- // custom validation
myValidate();
if(!hasActionErrors()) {
@@ -154,29 +155,22 @@
}
- // TODO: replace with struts2 validation
- private void myValidate() {
+ public void myValidate() {
String allowed = RollerConfig.getProperty("username.allowedChars");
if(allowed == null || allowed.trim().length() == 0) {
allowed = Register.DEFAULT_ALLOWED_CHARS;
}
- String safe = CharSetUtils.keep(getBean().getHandle(), allowed);
-
- if (StringUtils.isEmpty(getBean().getName())) {
- addError("createWeblog.error.missingName");
- }
- if (StringUtils.isEmpty(getBean().getHandle())) {
- addError("createWeblog.error.missingHandle");
- } else if (!safe.equals(getBean().getHandle()) ) {
+ // make sure handle only contains safe characters
+ String safe = CharSetUtils.keep(getBean().getHandle(), allowed);
+ if (!safe.equals(getBean().getHandle()) ) {
addError("createWeblog.error.invalidHandle");
}
- if (StringUtils.isEmpty(getBean().getEmailAddress())) {
- addError("createWeblog.error.missingEmailAddress");
- }
+ // make sure theme was specified and is a valid value
+ // make sure handle isn't already taken
if(!StringUtils.isEmpty(getBean().getHandle())) try {
UserManager mgr = RollerFactory.getRoller().getUserManager();
if (mgr.getWebsiteByHandle(getBean().getHandle()) != null) {
Added: roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml?view=auto&rev=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
(added)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
Mon May 21 16:28:27 2007
@@ -0,0 +1,64 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+<validators>
+
+ <field name="bean.screenName">
+ <field-validator type="requiredstring">
+ <message key="Register.error.screenNameNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.screenNameSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.fullName">
+ <field-validator type="requiredstring">
+ <message key="Register.error.fullNameNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.fullNameSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.emailAddress">
+ <field-validator type="requiredstring">
+ <message key="Register.error.emailAddressNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.emailAddressSize">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="email">
+ <message key="Register.error.emailAddressBad">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.locale">
+ <field-validator type="requiredstring">
+ <message key="Register.error.localeNull">unspecified key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="Register.error.localeSize">unspecified key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.timeZone">
+ <field-validator type="requiredstring">
+ <message key="Register.error.timeZoneNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="Register.error.timeZoneSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java (original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java Mon May 21
16:28:27 2007
@@ -26,6 +26,7 @@
import org.apache.roller.business.UserManager;
import org.apache.roller.pojos.UserData;
import org.apache.roller.ui.core.util.struts2.UIAction;
+import org.apache.struts2.interceptor.validation.SkipValidation;
/**
@@ -50,6 +51,7 @@
}
+ @SkipValidation
public String execute() {
UserData ud = getAuthenticatedUser();
@@ -65,6 +67,7 @@
}
+ @SkipValidation
public String cancel() {
return "cancel";
}
@@ -72,7 +75,6 @@
public String save() {
- // custom validation
myValidate();
if (!hasActionErrors()) {
@@ -121,11 +123,13 @@
}
- // TODO: replace with struts2 validation
- private void myValidate() {
+ public void myValidate() {
- if (StringUtils.isEmpty(getBean().getEmailAddress())) {
- addError("error.add.user.missingEmailAddress");
+ // check that passwords match if they were specified
+ if(!StringUtils.isEmpty(getBean().getPasswordText())) {
+
if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
+ addError("Register.error.passowordMismatch");
+ }
}
}
Added:
roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml?view=auto&rev=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
(added)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
Mon May 21 16:28:27 2007
@@ -0,0 +1,98 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+<validators>
+
+ <field name="bean.userName">
+ <field-validator type="requiredstring">
+ <message key="Register.error.nameNull">unspecified key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.nameSize">unspecified key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.passwordText">
+ <field-validator type="requiredstring">
+ <message key="Register.error.passwordNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.passwordSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.passwordConfirm">
+ <field-validator type="requiredstring">
+ <message key="Register.error.passwordConfirmNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.passwordConfirmSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+
+ <field name="bean.screenName">
+ <field-validator type="requiredstring">
+ <message key="Register.error.screenNameNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.screenNameSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.fullName">
+ <field-validator type="requiredstring">
+ <message key="Register.error.fullNameNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.fullNameSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.emailAddress">
+ <field-validator type="requiredstring">
+ <message key="Register.error.emailAddressNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">255</param>
+ <message key="Register.error.emailAddressSize">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="email">
+ <message key="Register.error.emailAddressBad">unspecified
key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.locale">
+ <field-validator type="requiredstring">
+ <message key="Register.error.localeNull">unspecified key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="Register.error.localeSize">unspecified key</message>
+ </field-validator>
+ </field>
+
+ <field name="bean.timeZone">
+ <field-validator type="requiredstring">
+ <message key="Register.error.timeZoneNull">unspecified
key</message>
+ </field-validator>
+
+ <field-validator type="stringlength">
+ <param name="maxLength">20</param>
+ <message key="Register.error.timeZoneSize">unspecified
key</message>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java
URL:
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java (original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java Mon May 21
16:28:27 2007
@@ -36,6 +36,7 @@
import org.apache.roller.ui.core.util.struts2.UIAction;
import org.apache.roller.util.MailUtil;
import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.validation.SkipValidation;
/**
@@ -73,6 +74,7 @@
}
+ @SkipValidation
public String execute() {
if(!RollerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
@@ -104,6 +106,7 @@
}
+ @SkipValidation
public String cancel() {
return "cancel";
}
@@ -115,7 +118,6 @@
return "disabled";
}
- // run some validation
myValidate();
if (!hasActionErrors()) try {
@@ -244,8 +246,7 @@
}
- // TODO: replace with struts2 validation
- protected void myValidate() {
+ public void myValidate() {
// if usingSSO, we don't want to error on empty password/username from
HTML form.
setFromSS0(false);
@@ -269,21 +270,30 @@
if(allowed == null || allowed.trim().length() == 0) {
allowed = DEFAULT_ALLOWED_CHARS;
}
- String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
- if (StringUtils.isEmpty(getBean().getUserName())) {
- addError("error.add.user.missingUserName");
- } else if (!safe.equals(getBean().getUserName()) ) {
+ // check that username only contains safe characters
+ String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
+ if (!safe.equals(getBean().getUserName()) ) {
addError("error.add.user.badUserName");
}
- if (StringUtils.isEmpty(getBean().getEmailAddress())) {
- addError("error.add.user.missingEmailAddress");
+ // check that passwords match
+
if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
+ addError("Register.error.passowordMismatch");
}
- if (StringUtils.isEmpty(getBean().getPasswordText()) &&
- StringUtils.isEmpty(getBean().getPasswordConfirm())) {
- addError("error.add.user.missingPassword");
+ // check that username is not taken
+ if(!StringUtils.isEmpty(getBean().getUserName())) try {
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ if(mgr.getUserByUserName(getBean().getUserName(), null) != null) {
+ addError("error.add.user.userNameInUse");
+ // reset user name
+ getBean().setUserName(null);
+ }
+ } catch (RollerException ex) {
+ log.error("error checking for user", ex);
+ // TODO: i18n
+ addError("unexpected error");
}
}