[prev in list] [next in list] [prev in thread] [next in thread]
List: mina-commits
Subject: svn commit: r1053366 - in /mina/vysper/trunk/server/core/src:
From: berndf () apache ! org
Date: 2010-12-28 14:54:42
Message-ID: 20101228145442.E05C623889C5 () eris ! apache ! org
[Download RAW message or body]
Author: berndf
Date: Tue Dec 28 14:54:42 2010
New Revision: 1053366
URL: http://svn.apache.org/viewvc?rev=1053366&view=rev
Log:
VYSPER-159: Change User Password. Admins can change all passwords, users only their \
own.
Added:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServerAdministrationService.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/ChangeUserPasswordCommandHandler.java
- copied, changed from r1053331, \
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/PasswordCheckingCommandHandler.java
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/user/JcrUserManagement.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/AccountManagement.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/SimpleUserAuthorization.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0050_adhoc_commands/AdhocCommandsModule.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServiceAdministrationModule.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/user/JcrUserManagement.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/storage/jcr/user/JcrUserManagement.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/user/JcrUserManagement.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/user/JcrUserManagement.java \
Tue Dec 28 14:54:42 2010 @@ -109,4 +109,22 @@ public class JcrUserManagement \
implement }
}
+
+ public void changePassword(String username, String password) throws \
AccountCreationException { + final EntityImpl entity;
+ try {
+ entity = EntityImpl.parse(username);
+ } catch (EntityFormatException e) {
+ throw new AccountCreationException("username is expected to be in proper \
entity format, not " + username, e); // wrap as unchecked + }
+ try {
+ final Node credentialsNode = jcrStorage.getEntityNode(entity, \
CREDENTIALS_NAMESPACE, false); + credentialsNode.setProperty("password", \
password); + credentialsNode.save();
+ logger.info("JCR password changed: " + credentialsNode);
+ } catch (Exception e) {
+ // TODO remove account?
+ throw new AccountCreationException("failed to create the account set \
credentials", e); + }
+ }
}
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/AccountManagement.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/authorization/AccountManagement.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/AccountManagement.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/AccountManagement.java \
Tue Dec 28 14:54:42 2010 @@ -28,6 +28,8 @@ import org.apache.vysper.xmpp.addressing
*/
public interface AccountManagement extends StorageProvider {
void addUser(String username, String password) throws AccountCreationException;
+
+ void changePassword(String username, String password) throws \
AccountCreationException;
/**
* checks if there is this jid is registered with the server
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/SimpleUserAuthorization.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/authorization/SimpleUserAuthorization.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/SimpleUserAuthorization.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/authorization/SimpleUserAuthorization.java \
Tue Dec 28 14:54:42 2010 @@ -45,6 +45,13 @@ public class SimpleUserAuthorization imp
userPasswordMap.put(username, password);
}
+ public void changePassword(String username, String password) throws \
AccountCreationException { + if (!userPasswordMap.containsKey(username)) {
+ throw new AccountCreationException("could not change password for \
unknown user " + username); + }
+ userPasswordMap.put(username, password);
+ }
+
public boolean verifyCredentials(Entity jid, String passwordCleartext, Object \
credentials) { return verify(jid.getFullQualifiedName(), passwordCleartext);
}
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0050_adhoc_commands/AdhocCommandsModule.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0050_adhoc_commands/AdhocCommandsModule.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0050_adhoc_commands/AdhocCommandsModule.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0050_adhoc_commands/AdhocCommandsModule.java \
Tue Dec 28 14:54:42 2010 @@ -51,7 +51,7 @@ import java.util.List;
*/
public class AdhocCommandsModule extends DefaultDiscoAwareModule
implements ItemRequestListener, ServerInfoRequestListener,
- ServerRuntimeContextService, AdhocCommandsService{
+ ServerRuntimeContextService, AdhocCommandsService {
public static final String ADHOC_COMMANDS = "adhoc_commands";
private final Logger logger = \
LoggerFactory.getLogger(org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandsModule.class);
Added: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServerAdministrationService.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0133_service_administration/ServerAdministrationService.java?rev=1053366&view=auto
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServerAdministrationService.java \
(added)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServerAdministrationService.java \
Tue Dec 28 14:54:42 2010 @@ -0,0 +1,16 @@
+package org.apache.vysper.xmpp.modules.extension.xep0133_service_administration;
+
+import org.apache.vysper.xmpp.addressing.Entity;
+
+import java.util.Collection;
+
+/**
+ */
+public interface ServerAdministrationService {
+
+ void setAddAdminJIDs(Collection<Entity> admins);
+
+ void setAddAdmins(Collection<String> admins);
+
+ boolean isAdmin(Entity adminCandidate);
+}
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServiceAdministrationModule.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0133_service_administration/ServiceAdministrationModule.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServiceAdministrationModule.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/ServiceAdministrationModule.java \
Tue Dec 28 14:54:42 2010 @@ -19,22 +19,23 @@
*/
package org.apache.vysper.xmpp.modules.extension.xep0133_service_administration;
-import org.apache.vysper.storage.StorageProvider;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.authorization.AccountManagement;
-import org.apache.vysper.xmpp.authorization.UserAuthorization;
import org.apache.vysper.xmpp.modules.DefaultModule;
+import org.apache.vysper.xmpp.modules.ServerRuntimeContextService;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandHandler;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandSupport;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandsModule;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandsService;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.CommandInfo;
import org.apache.vysper.xmpp.modules.extension.xep0133_service_administration.command.AddUserCommandHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0133_service_administration.command.ChangeUserPasswordCommandHandler;
import org.apache.vysper.xmpp.modules.extension.xep0133_service_administration.command.GetOnlineUsersCommandHandler;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoRequest;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
+import org.apache.vysper.xmpp.state.resourcebinding.ResourceRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,12 +51,13 @@ import java.util.Set;
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public class ServiceAdministrationModule extends DefaultModule implements \
AdhocCommandSupport { +public class ServiceAdministrationModule extends DefaultModule \
implements AdhocCommandSupport, ServerRuntimeContextService, \
ServerAdministrationService {
private final Logger logger = \
LoggerFactory.getLogger(ServiceAdministrationModule.class);
public static final String COMMAND_NODE_ADD_USER = \
"http://jabber.org/protocol/admin#add-user";
public static final String COMMAND_GET_ONLINE_USERS_NUM = \
"http://jabber.org/protocol/admin#get-online-users-num"; + public static final \
String COMMAND_CHANGE_USER_PASSWORD = \
"http://jabber.org/protocol/admin#change-user-password";
private ServerRuntimeContext serverRuntimeContext;
@@ -63,8 +65,9 @@ public class ServiceAdministrationModule
protected final Map<String, CommandInfo> allCommandInfos = new HashMap<String, \
CommandInfo>();
public ServiceAdministrationModule() {
- allCommandInfos.put(COMMAND_NODE_ADD_USER, new \
CommandInfo(COMMAND_NODE_ADD_USER, "Add User"));
- allCommandInfos.put(COMMAND_GET_ONLINE_USERS_NUM, new \
CommandInfo(COMMAND_GET_ONLINE_USERS_NUM, "Get Number of Online Users")); + /* \
XEP-133 4.1 */ allCommandInfos.put(COMMAND_NODE_ADD_USER, new \
CommandInfo(COMMAND_NODE_ADD_USER, "Add User")); + /* XEP-133 4.7 */ \
allCommandInfos.put(COMMAND_CHANGE_USER_PASSWORD, new \
CommandInfo(COMMAND_CHANGE_USER_PASSWORD, "Change User Password")); + /* \
XEP-133 4.15 */ allCommandInfos.put(COMMAND_GET_ONLINE_USERS_NUM, new \
CommandInfo(COMMAND_GET_ONLINE_USERS_NUM, "Get Number of Online Users")); }
/**
@@ -78,6 +81,8 @@ public class ServiceAdministrationModule
final AdhocCommandsService adhocCommandsService = \
(AdhocCommandsService)serverRuntimeContext.getServerRuntimeContextService(AdhocCommandsModule.ADHOC_COMMANDS);
adhocCommandsService.registerCommandSupport(this);
+
+ serverRuntimeContext.registerServerRuntimeContextService(this);
}
public void setAddAdminJIDs(Collection<Entity> admins) {
@@ -96,7 +101,11 @@ public class ServiceAdministrationModule
}
this.admins.addAll(adminEntities);
}
-
+
+ public boolean isAdmin(Entity adminCandidate) {
+ return admins.contains(adminCandidate);
+ }
+
@Override
public String getName() {
return "XEP-0133 Service Administration";
@@ -107,9 +116,13 @@ public class ServiceAdministrationModule
return "1.1";
}
+ public String getServiceName() {
+ return getName();
+ }
+
public Collection<CommandInfo> getCommandInfosForInfoRequest(InfoRequest \
infoRequest, boolean hintListAll) { if (!admins.contains(infoRequest.getFrom())) {
- return null;
+ return Arrays.asList(allCommandInfos.get(COMMAND_CHANGE_USER_PASSWORD));
}
if (hintListAll) return allCommandInfos.values();
@@ -118,15 +131,26 @@ public class ServiceAdministrationModule
}
public AdhocCommandHandler getCommandHandler(String commandNode, Entity \
executingUser) {
- if (executingUser == null || !admins.contains(executingUser)) {
+ if (executingUser == null) return null;
+
+ final AccountManagement accountManagement = \
(AccountManagement)serverRuntimeContext.getStorageProvider(AccountManagement.class); \
+ final ResourceRegistry resourceRegistry = \
serverRuntimeContext.getResourceRegistry(); +
+ if (!admins.contains(executingUser)) {
+ // non-admins can only admin their own accounts
+ if (commandNode.equals(COMMAND_CHANGE_USER_PASSWORD)) {
+ return new ChangeUserPasswordCommandHandler(accountManagement, \
executingUser); + }
return null;
}
+
if (commandNode.equals(COMMAND_NODE_ADD_USER)) {
- final AccountManagement accountManagement = \
(AccountManagement)serverRuntimeContext.getStorageProvider(AccountManagement.class); \
if (accountManagement == null) return null;
return new AddUserCommandHandler(accountManagement, \
Arrays.asList(serverRuntimeContext.getServerEnitity().getDomain())); + } else \
if (commandNode.equals(COMMAND_CHANGE_USER_PASSWORD)) { + return new \
ChangeUserPasswordCommandHandler(accountManagement, null); } else if \
(commandNode.equals(COMMAND_GET_ONLINE_USERS_NUM)) {
- return new \
GetOnlineUsersCommandHandler(serverRuntimeContext.getResourceRegistry()); + \
return new GetOnlineUsersCommandHandler(resourceRegistry); }
return null;
}
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java \
Tue Dec 28 14:54:42 2010 @@ -16,7 +16,7 @@ import java.util.Map;
/**
*/
-public class AddUserCommandHandler extends AbstractAdhocCommandHandler {
+public class AddUserCommandHandler extends PasswordCheckingCommandHandler {
protected AccountManagement accountManagement;
protected List<String> allowedDomains;
@@ -63,16 +63,10 @@ public class AddUserCommandHandler exten
notes.add(Note.error("new account must match one of this server's \
domains, e.g. " + allowedDomains.get(0))); return sendForm();
}
- if (StringUtils.isBlank(password) ||
- password.equals(accountjid.getFullQualifiedName()) ||
- password.length() < 8) {
- notes.add(Note.error("password must have at least 8 chars and must not \
be the same as the new JID"));
- return sendForm();
- }
- if (!password.equals(password2)) {
- notes.add(Note.error("passwords did not match"));
- return sendForm();
- }
+
+ final boolean success = checkPassword(notes, accountjid, password, \
password2); + if (!success) return sendForm();
+
if (accountManagement.verifyAccountExists(accountjid)) {
notes.add(Note.error("account already exists: " + accountjid));
return sendForm();
Copied: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/ext \
ension/xep0133_service_administration/command/ChangeUserPasswordCommandHandler.java \
(from r1053331, mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/mod \
ules/extension/xep0133_service_administration/command/AddUserCommandHandler.java)
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0133_service_administration/command/ChangeUserPass \
wordCommandHandler.java?p2=mina/vysper/trunk/server/core/src/main/java/org/apache/vysp \
er/xmpp/modules/extension/xep0133_service_administration/command/ChangeUserPasswordCom \
mandHandler.java&p1=mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp \
/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java&r1=1053331&r2=1053366&rev=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/AddUserCommandHandler.java \
(original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/ChangeUserPasswordCommandHandler.java \
Tue Dec 28 14:54:42 2010 @@ -16,17 +16,18 @@ import java.util.Map;
/**
*/
-public class AddUserCommandHandler extends AbstractAdhocCommandHandler {
+public class ChangeUserPasswordCommandHandler extends PasswordCheckingCommandHandler \
{
protected AccountManagement accountManagement;
- protected List<String> allowedDomains;
- public AddUserCommandHandler(AccountManagement accountManagement, List<String> \
allowedDomains) { + /**
+ * if not NULL, the user will only be able this JID's (his own) password
+ */
+ protected Entity constrainedJID;
+
+ public ChangeUserPasswordCommandHandler(AccountManagement accountManagement, \
Entity constrainedJID) { this.accountManagement = accountManagement;
- if (allowedDomains == null || allowedDomains.size() == 0) {
- throw new IllegalArgumentException("allowed domain list cannot be \
empty");
- }
- this.allowedDomains = allowedDomains;
+ this.constrainedJID = constrainedJID;
}
public XMLElement process(List<XMLElement> commandElements, List<Note> notes) {
@@ -38,17 +39,18 @@ public class AddUserCommandHandler exten
}
protected XMLElement sendForm() {
- final DataForm dataForm = createFormForm("Adding a User", "Fill out this \
form to add a user.");
- dataForm.addField(new Field("The Jabber ID for the account to be added", \
Field.Type.JID_SINGLE, "accountjid"));
- dataForm.addField(new Field("The password for this account", \
Field.Type.TEXT_PRIVATE, "password"));
- dataForm.addField(new Field("Retype password", Field.Type.TEXT_PRIVATE, \
"password-verify"));
- dataForm.addField(new Field("Email address", Field.Type.TEXT_SINGLE, \
"email"));
- dataForm.addField(new Field("Given name", Field.Type.TEXT_SINGLE, \
"given_name"));
- dataForm.addField(new Field("Family name", Field.Type.TEXT_SINGLE, \
"surname")); + final DataForm dataForm = createFormForm("Changing a User \
Password", "Fill out this form to change a user's password."); + if \
(constrainedJID == null) { + dataForm.addField(new Field("The Jabber ID \
whose password will be changed.", Field.Type.JID_SINGLE, "accountjid")); + } \
else { + dataForm.addField(new Field("The Jabber ID whose password will be \
changed.", Field.Type.JID_SINGLE, "accountjid", \
constrainedJID.getFullQualifiedName())); + }
+ dataForm.addField(new Field("The new password for this account", \
Field.Type.TEXT_PRIVATE, "password")); + dataForm.addField(new Field("Retype \
new password", Field.Type.TEXT_PRIVATE, "password-verify"));
return DATA_FORM_ENCODER.getXML(dataForm);
}
-
+
protected XMLElement processForm(List<XMLElement> commandElements, List<Note> \
notes) { if (commandElements.size() != 1) {
throw new IllegalStateException("must be an X element");
@@ -59,29 +61,18 @@ public class AddUserCommandHandler exten
final String password = (String)valueMap.get("password");
final String password2 = (String)valueMap.get("password-verify");
- if (accountjid == null || !allowedDomains.contains(accountjid.getDomain())) \
{
- notes.add(Note.error("new account must match one of this server's \
domains, e.g. " + allowedDomains.get(0)));
- return sendForm();
- }
- if (StringUtils.isBlank(password) ||
- password.equals(accountjid.getFullQualifiedName()) ||
- password.length() < 8) {
- notes.add(Note.error("password must have at least 8 chars and must not \
be the same as the new JID"));
- return sendForm();
- }
- if (!password.equals(password2)) {
- notes.add(Note.error("passwords did not match"));
- return sendForm();
- }
- if (accountManagement.verifyAccountExists(accountjid)) {
- notes.add(Note.error("account already exists: " + accountjid));
+ final boolean success = checkPassword(notes, accountjid, password, \
password2); + if (!success) return sendForm();
+
+ if (constrainedJID != null && !constrainedJID.equals(accountjid)) {
+ notes.add(Note.error("password change only allowed for " + \
constrainedJID.getFullQualifiedName())); return sendForm();
}
-
+
try {
- accountManagement.addUser(accountjid.getFullQualifiedName(), password);
+ accountManagement.changePassword(accountjid.getFullQualifiedName(), \
password); } catch (AccountCreationException e) {
- notes.add(Note.error("account creation failed for " + accountjid));
+ notes.add(Note.error("changing password failed for " + accountjid));
return sendForm();
}
Added: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/PasswordCheckingCommandHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apac \
he/vysper/xmpp/modules/extension/xep0133_service_administration/command/PasswordCheckingCommandHandler.java?rev=1053366&view=auto
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/PasswordCheckingCommandHandler.java \
(added)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0133_service_administration/command/PasswordCheckingCommandHandler.java \
Tue Dec 28 14:54:42 2010 @@ -0,0 +1,26 @@
+package org.apache.vysper.xmpp.modules.extension.xep0133_service_administration.command;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AbstractAdhocCommandHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.Note;
+
+import java.util.List;
+
+/**
+ */
+public abstract class PasswordCheckingCommandHandler extends \
AbstractAdhocCommandHandler { + protected boolean checkPassword(List<Note> notes, \
Entity accountjid, String password, String password2) { + if \
(StringUtils.isBlank(password) || + \
password.equals(accountjid.getFullQualifiedName()) || + password.length() \
< 8) { + notes.add(Note.error("password must have at least 8 chars and \
must not be the same as the new JID")); + return false;
+ }
+ if (!password.equals(password2)) {
+ notes.add(Note.error("passwords did not match"));
+ return false;
+ }
+ return true;
+ }
+}
Modified: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apac \
he/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java?rev=1053366&r1=1053365&r2=1053366&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java \
(original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java \
Tue Dec 28 14:54:42 2010 @@ -52,6 +52,10 @@ public class DeliveringStanzaRelayTestCa
; // empty
}
+ public void changePassword(String username, String password) throws \
AccountCreationException { + ; // empty
+ }
+
public boolean verifyAccountExists(Entity jid) {
return true;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic