You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by me...@apache.org on 2014/07/31 20:46:53 UTC
svn commit: r1614954 - in /jspwiki/trunk: ./
jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/
jspwiki-war/src/main/config/db/ jspwiki-war/src/main/java/org/apache/wiki/
jspwiki-war/src/main/java/org/apache/wiki/auth/
jspwiki-war/src/main/java/o...
Author: metskem
Date: Thu Jul 31 18:46:53 2014
New Revision: 1614954
URL: http://svn.apache.org/r1614954
Log:
2014-07-31 Harry Metske (metskem@apache.org)
* 2.10.2-svn-5
* Fixed JSPWIKI-195 - do not allow more than one account with the same email address.
==> a new key (security.error.email.taken) was added to CoreResources.properties
Modified:
jspwiki/trunk/ChangeLog
jspwiki/trunk/jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/hsql-userdb-setup.sql
jspwiki/trunk/jspwiki-war/src/main/config/db/hsql.ddl
jspwiki/trunk/jspwiki-war/src/main/config/db/postgresql.ddl
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/UserManager.java
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/ui/InputValidator.java
jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources.properties
jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources_nl.properties
jspwiki/trunk/jspwiki-war/src/test/config/hsql-userdb-setup.ddl
Modified: jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/jspwiki/trunk/ChangeLog?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/ChangeLog (original)
+++ jspwiki/trunk/ChangeLog Thu Jul 31 18:46:53 2014
@@ -1,3 +1,12 @@
+2014-07-31 Harry Metske (metskem@apache.org)
+
+ * 2.10.2-svn-5
+
+ * Fixed JSPWIKI-195 - do not allow more than one account with the same email address.
+ ==> a new key (security.error.email.taken) was added to CoreResources.properties
+
+ * minor encoding correction for the CoreResources_nl.properties
+
2014-07-07 Juan Pablo Santos (juanpablo AT apache DOT org)
* 2.10.2-svn-4
Modified: jspwiki/trunk/jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/hsql-userdb-setup.sql
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/hsql-userdb-setup.sql?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/hsql-userdb-setup.sql (original)
+++ jspwiki/trunk/jspwiki-it-tests/jspwiki-selenium-tests/src/main/config/hsql-userdb-setup.sql Thu Jul 31 18:46:53 2014
@@ -14,7 +14,7 @@
create table users (
uid varchar(100),
- email varchar(100),
+ email varchar_ignorecase(100),
full_name varchar(100),
login_name varchar(100) not null,
password varchar(100),
Modified: jspwiki/trunk/jspwiki-war/src/main/config/db/hsql.ddl
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/config/db/hsql.ddl?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/config/db/hsql.ddl (original)
+++ jspwiki/trunk/jspwiki-war/src/main/config/db/hsql.ddl Thu Jul 31 18:46:53 2014
@@ -20,7 +20,7 @@ drop user jspwiki;
create table users (
uid varchar(100),
- email varchar(100),
+ email varchar_ignorecase(100),
full_name varchar(100),
login_name varchar(100) not null,
password varchar(100),
Modified: jspwiki/trunk/jspwiki-war/src/main/config/db/postgresql.ddl
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/config/db/postgresql.ddl?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/config/db/postgresql.ddl (original)
+++ jspwiki/trunk/jspwiki-war/src/main/config/db/postgresql.ddl Thu Jul 31 18:46:53 2014
@@ -20,7 +20,7 @@ drop user jspwiki;
create table users (
uid varchar(100),
- email varchar(100),
+ email varchar_ignorecase(100),
full_name varchar(100),
login_name varchar(100) not null primary key,
password varchar(100),
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java Thu Jul 31 18:46:53 2014
@@ -72,7 +72,7 @@ public final class Release {
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "4";
+ public static final String BUILD = "5";
/**
* This is the generic version string you should use when printing out the version. It is of
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/UserManager.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/UserManager.java?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/UserManager.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/UserManager.java Thu Jul 31 18:46:53 2014
@@ -32,6 +32,7 @@ import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.wiki.WikiContext;
import org.apache.wiki.WikiEngine;
@@ -538,6 +539,7 @@ public class UserManager {
UserProfile otherProfile;
String fullName = profile.getFullname();
String loginName = profile.getLoginName();
+ String email = profile.getEmail();
// It's illegal to use as a full name someone else's login name
try
@@ -561,7 +563,20 @@ public class UserManager {
{
Object[] args = { loginName };
session.addMessage( SESSION_MESSAGES, MessageFormat.format( rb.getString("security.error.illegalloginname"),
- args ) );
+ args ) );
+ }
+ }
+ catch ( NoSuchPrincipalException e)
+ { /* It's clean */ }
+
+ // It's illegal to use multiple accounts with the same email
+ try
+ {
+ otherProfile = getUserDatabase().findByEmail( email );
+ if ( otherProfile != null && !profile.equals( otherProfile ) && StringUtils.lowerCase( email ).equals( StringUtils.lowerCase(otherProfile.getEmail() ) ) )
+ {
+ Object[] args = { email };
+ session.addMessage( SESSION_MESSAGES, MessageFormat.format( rb.getString("security.error.email.taken"), args ) );
}
}
catch ( NoSuchPrincipalException e)
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/DefaultUserProfile.java Thu Jul 31 18:46:53 2014
@@ -18,6 +18,8 @@
*/
package org.apache.wiki.auth.user;
+import org.apache.commons.lang.StringUtils;
+
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
@@ -85,7 +87,7 @@ public final class DefaultUserProfile im
{
DefaultUserProfile u = (DefaultUserProfile) o;
return same( m_fullname, u.m_fullname ) && same( m_password, u.m_password )
- && same( m_loginName, u.m_loginName ) && same( m_email, u.m_email ) && same( m_wikiname,
+ && same( m_loginName, u.m_loginName ) && same(StringUtils.lowerCase( m_email ), StringUtils.lowerCase( u.m_email ) ) && same( m_wikiname,
u.m_wikiname );
}
@@ -98,7 +100,7 @@ public final class DefaultUserProfile im
(m_password != null ? m_password.hashCode() : 0) ^
(m_loginName != null ? m_loginName.hashCode() : 0) ^
(m_wikiname != null ? m_wikiname.hashCode() : 0) ^
- (m_email != null ? m_email.hashCode() : 0);
+ (m_email != null ? StringUtils.lowerCase( m_email ).hashCode() : 0);
}
/**
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java Thu Jul 31 18:46:53 2014
@@ -38,6 +38,7 @@ import java.util.TreeSet;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import org.apache.commons.lang.StringUtils;
import org.apache.wiki.WikiEngine;
import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
import org.apache.wiki.auth.NoSuchPrincipalException;
@@ -623,11 +624,24 @@ public class XMLUserDatabase extends Abs
NodeList users = c_dom.getElementsByTagName( USER_TAG );
if( users == null ) return null;
-
+
+ // check if we have to do a case insensitive compare
+ boolean caseSensitiveCompare = true;
+ if (matchAttribute.equals(EMAIL))
+ {
+ caseSensitiveCompare = false;
+ }
+
for( int i = 0; i < users.getLength(); i++ )
{
Element user = (Element) users.item( i );
- if ( user.getAttribute( matchAttribute ).equals( index ) )
+ String userAttribute = user.getAttribute( matchAttribute );
+ if (!caseSensitiveCompare)
+ {
+ userAttribute = StringUtils.lowerCase(userAttribute);
+ index = StringUtils.lowerCase(index);
+ }
+ if ( userAttribute.equals( index ) )
{
UserProfile profile = newProfile();
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/ui/InputValidator.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/ui/InputValidator.java?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/ui/InputValidator.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/ui/InputValidator.java Thu Jul 31 18:46:53 2014
@@ -144,8 +144,7 @@ public final class InputValidator
if ( !valid )
{
Object[] args = { label, ""'<>;&[]#\\@{}%$" };
- m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.unsafechars"),
- args ) );
+ m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.unsafechars"), args ) );
}
return valid;
case EMAIL:
@@ -154,8 +153,7 @@ public final class InputValidator
if ( !valid )
{
Object[] args = { label };
- m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.invalidemail"),
- args ) );
+ m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.invalidemail"), args ) );
}
return valid;
case ID:
@@ -164,8 +162,7 @@ public final class InputValidator
if ( !valid )
{
Object[] args = { label, ""'<>;&{}" };
- m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.unsafechars"),
- args ) );
+ m_session.addMessage( m_form, MessageFormat.format( rb.getString("validate.unsafechars"), args ) );
}
return valid;
default:
Modified: jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources.properties
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources.properties?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources.properties (original)
+++ jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources.properties Thu Jul 31 18:46:53 2014
@@ -62,6 +62,7 @@ security.error.illegalloginname=Login na
security.error.cannot.rename=Cannot rename: the login name ''{0}'' is already taken.
security.error.fullname.taken=Someone with the name of ''{0}'' has already registered.
security.error.login.taken=The login name ''{0}'' is already taken.
+security.error.email.taken=The email ''{0}'' is already taken, you can use an email for only one profile.
# These should roughly match whatever is used in default.properties for UserProfile.jsp
security.user.loginname=Login name
Modified: jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources_nl.properties
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources_nl.properties?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources_nl.properties (original)
+++ jspwiki/trunk/jspwiki-war/src/main/resources/CoreResources_nl.properties Thu Jul 31 18:46:53 2014
@@ -59,7 +59,8 @@ security.error.illegalloginname=Ongeldig
security.error.cannot.rename=Kan niet hernoemen: de Login naam ''{0}'' is al in gebruik.
security.error.fullname.taken=De volledige naam ''{0}'' is al in gebruik.
-security.error.login.taken=De Login naam ''{0}'' is al in gebruik.
+security.error.login.taken=De Login naam ''{0}'' is al in gebruik.
+security.error.email.taken=Het email adres ''{0}'' is al in gebruik, je kunt een email adres maar voor één profile gebruiken.
# These should roughly match whatever is used in default.properties for UserProfile.jsp
security.user.loginname=Login naam
@@ -76,12 +77,12 @@ rename.identical=De pagina namen zijn id
rename.exists=De pagina "{0}" bestaat reeds. Kies een andere naam of verwijder de pagina "{0}".
rename.unknownerror=Er is een onbekende fout opgetreden ({0})
-# Login.jsp
+# Login.jsp
login.error.password=Geen geldige login.
login.error.noaccess=U heeft geen toegang tot deze informatie.Sorry.
# Lostpassword.jsp
-
+
# 0 = login name, 1 = password, 2 = URL, 3 = Application name (as signature)
# This is text, not HTML.
lostpwd.newpassword.email=Zoals aangevraagd, uw nieuwe wachtwoord voor de login "{0}" is "{1}" \
@@ -119,12 +120,12 @@ userprofile.noroles=(geen)
# NewGroup.jsp
newgroup.exists=Groep {0} bestaat reeds. Probeer een andere naam.
-# JSPWikiMarkupParser
+# JSPWikiMarkupParser
markupparser.error.invalidset = Foutief SET commando gevonden: {0}
markupparser.error.nointerwikiref = Er is geen InterWiki definitie in jspwiki.properties voor "{0}"!
markupparser.error.parserfailure = Fout in de Parser: {0}
-markupparser.error.javascriptattempt = Fout in javascript generatie!
+markupparser.error.javascriptattempt = Fout in javascript generatie!
markupparser.link.create = Create "{0}"
# Captcha.jsp
@@ -148,9 +149,9 @@ install.jsp.intro.p3=Dit setup systeem i
Als je JSPWiki wilt integreren in een bestaande omgeving, dan raad ik toch aan om de file \
<code>jspwiki-custom.properties</code> zelf met het handje te wijzigen en ergens op het classpath te zetten. Je vindt een voorbeeld op \
<a href="https://jspwiki-wiki.apache.org/Wiki.jsp?page=Documentation"> onze wiki </a>.
-install.jsp.install.info=Goed nieuws:
-install.jsp.install.warning=Waarschuwing:
-install.jsp.install.error=Kon de configuratie niet opslaan:
+install.jsp.install.info=Goed nieuws:
+install.jsp.install.warning=Waarschuwing:
+install.jsp.install.error=Kon de configuratie niet opslaan:
install.jsp.install.msg.rnd.pwd=Omdat er nog geen administrator account bestaat, heeft JSPWiki er een voor je gemaakt, met een \
random wachtwoord. Je kan dit natuurlijk later zelf wijzigen. Het account is \
{0} en het wachtwoord is {1}. \
@@ -159,7 +160,7 @@ install.jsp.install.msg.rnd.pwd=Omdat er
install.jsp.install.msg.admin.notexists=Is dit de eerste keer dat je de Installer draait ? Zoja, dan moet je weten dat \
nadat JSPWiki je configuratie voor de eerste keer heeft gevalideerd en opgeslagen, je administratieve rechten \
nodig hebt om deze pagina te benaderen. Dit doen we om te voorkomen \
- dat willekeurige onverlaten iets engs met je wiki doen.
+ dat willekeurige onverlaten iets engs met je wiki doen.
install.jsp.basics.title=Basics
install.jsp.basics.appname.label=Applicatie naam
@@ -194,7 +195,7 @@ install.jsp.adv.settings.logfile.desc=JS
install.jsp.adv.settings.workdir.label=Work directory
install.jsp.adv.settings.workdir.desc=Dit is de plek waar alle caches en andere runtime spullen worden opgeslagen.
install.jsp.instr.desc=Als je op <em>Configure!</em> klikt, zal de Installer je instelling opslaan in <code>{0}</code>. \
- Hij zal ook een Administrator account met een random wachtwoord en een Admin group aanmaken.
+ Hij zal ook een Administrator account met een random wachtwoord en een Admin group aanmaken.
install.jsp.instr.submit=Configureer!
install.jsp.validated.new.props=Hier is je hagelnieuwe jspwiki-custom.properties
Modified: jspwiki/trunk/jspwiki-war/src/test/config/hsql-userdb-setup.ddl
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/test/config/hsql-userdb-setup.ddl?rev=1614954&r1=1614953&r2=1614954&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/test/config/hsql-userdb-setup.ddl (original)
+++ jspwiki/trunk/jspwiki-war/src/test/config/hsql-userdb-setup.ddl Thu Jul 31 18:46:53 2014
@@ -20,7 +20,7 @@ drop table group_members if exists;
create table users (
uid varchar(100),
- email varchar(100),
+ email varchar_ignorecase(100),
full_name varchar(100),
login_name varchar(100) not null,
password varchar(100),