Author: thomas.heute(a)jboss.com
Date: 2007-03-23 04:55:44 -0400 (Fri, 23 Mar 2007)
New Revision: 6803
Added:
trunk/identity/src/main/org/jboss/portal/identity/UserStatus.java
Modified:
trunk/core-samples/
trunk/core-samples/.classpath
trunk/core/.classpath
trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
trunk/core/src/resources/portal-core-sar/conf/login-config.xml
trunk/core/src/resources/portal-core-war/WEB-INF/classes/Resource.properties
trunk/core/src/resources/portal-core-war/WEB-INF/jsp/user/menu.jsp
trunk/core/src/resources/portal-core-war/WEB-INF/portlet.xml
trunk/core/src/resources/portal-server-war/error.jsp
trunk/identity/.classpath
trunk/identity/build.xml
trunk/identity/src/main/org/jboss/portal/identity/auth/IdentityLoginModule.java
trunk/jems/.classpath
trunk/portlet-server/
trunk/registration/.classpath
Log:
- Display warning message when a user updates his profile (taken into account at the next
login)
- Email verification on sign up working again
- Disabling a user is now possible
- Eclipse files update
Modified: trunk/core/.classpath
===================================================================
--- trunk/core/.classpath 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/core/.classpath 2007-03-23 08:55:44 UTC (rev 6803)
@@ -48,5 +48,6 @@
<classpathentry combineaccessrules="false" kind="src"
path="/portlet-federation"/>
<classpathentry kind="lib"
path="/thirdparty/jbpm/jaronly/lib/jbpm.jar"/>
<classpathentry combineaccessrules="false" kind="src"
path="/portlet-server"/>
+ <classpathentry kind="lib"
path="/thirdparty/apache-xerces/lib/xml-apis.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-03-22
00:34:11 UTC (rev 6802)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-03-23
08:55:44 UTC (rev 6803)
@@ -23,7 +23,9 @@
package org.jboss.portal.core.portlet.user;
import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintWriter;
+import java.net.URL;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Locale;
@@ -57,6 +59,7 @@
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.config.metadata.profile.ProfileMetaData;
import org.jboss.portal.theme.PortalTheme;
import org.jboss.portal.theme.ThemeInfo;
import org.jboss.portal.theme.ThemeService;
@@ -327,6 +330,10 @@
{
ctx.next("admin");
}
+ if (req.getParameter("modifiedProfile") != null)
+ {
+ ctx.next("modifiedProfile");
+ }
req.setAttribute(PortalJsp.CTX_REQUEST, ctx);
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/user/menu.jsp");
rd.include(req, resp);
@@ -522,7 +529,7 @@
// User is not logged in
op = req.getParameters().get(getOperationName(), OP_SHOWLOGIN);
- if (req.getWindowState() != WindowState.MAXIMIZED && !
OP_SHOWREGISTER_TY.equals(op))
+ if (req.getWindowState() != WindowState.MAXIMIZED && !
OP_SHOWREGISTER_TY.equals(op) && ! OP_ACTIVATEUSER.equals(op))
{
op = OP_SHOWLOGIN;
}
@@ -552,7 +559,7 @@
try
{
user = userModule.findUserById(userId);
- String hexCompare = Tools.md5AsHexString(user.getUserName() +
getProperty(user,User.INFO_USER_REGISTRATION_DATE) + UserPortletConstants.SALT);
+ String hexCompare = Tools.md5AsHexString(user.getUserName() +
getProperty(user,User.INFO_USER_REGISTRATION_DATE).toString() +
UserPortletConstants.SALT);
if (hash.equals(hexCompare))
{
setProperty(user, User.INFO_USER_ENABLED, Boolean.TRUE);
@@ -956,6 +963,7 @@
// Set back to normal window state
resp.setWindowState(WindowState.NORMAL);
+ portletHelper.setRenderParameter(resp, "modifiedProfile",
"true");
portletHelper.setRenderParameter(resp, getOperationName(), OP_SHOWMENU);
}
else
@@ -989,6 +997,7 @@
portletHelper.setRenderParameter(resp, "EXTRA", extra);
portletHelper.setRenderParameter(resp, getOperationName(), OP_SHOWPROFILE);
}
+
}
/**
@@ -1040,10 +1049,11 @@
{
// gen link using username, encrypted pw, and a salt.
String hash = Tools.md5AsHexString(user.getUserName() + getProperty(user,
User.INFO_USER_REGISTRATION_DATE).toString() + UserPortletConstants.SALT);
-
+
String rootURL = getPortletConfig().getInitParameter("emailDomain");
PortalNode node = req.getPortalNode();
+
//PortalNodeURL link = resp.createActionURL(node);
PortalNodeURL link = resp.createRenderURL(node);
link.setParameter("op", OP_ACTIVATEUSER);
@@ -1053,6 +1063,7 @@
// TODO: refactor to have a simple text file outside the code that can be
// easily changed
+
StringBuffer sb = new StringBuffer();
Locale locale = req.getLocale();
ResourceBundle bundle = getResourceBundle(locale);
@@ -1087,6 +1098,7 @@
* @param req DOCUMENT_ME
* @param resp DOCUMENT_ME
*/
+ /*
public void activate(JBossActionRequest req,
JBossActionResponse resp)
{
@@ -1114,6 +1126,7 @@
portletHelper.setI18nRenderParameter(req, resp,
UserPortletConstants.ERRORMESSAGE, "ERRORMESSAGE_UNABLEACTIVATE");
}
}
+ */
private String getFirstName(ResourceBundle bundle, User user)
{
Modified: trunk/core/src/resources/portal-core-sar/conf/login-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2007-03-22 00:34:11 UTC
(rev 6802)
+++ trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2007-03-23 08:55:44 UTC
(rev 6803)
@@ -42,6 +42,7 @@
<module-option
name="unauthenticatedIdentity">guest</module-option>
<module-option
name="userModuleJNDIName">java:/portal/UserModule</module-option>
<module-option
name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
+ <module-option
name="userProfileModuleJNDIName">java:/portal/UserProfileModule</module-option>
<module-option
name="membershipModuleJNDIName">java:/portal/MembershipModule</module-option>
<module-option
name="additionalRole">Authenticated</module-option>
<module-option
name="password-stacking">useFirstPass</module-option>
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/classes/Resource.properties
===================================================================
---
trunk/core/src/resources/portal-core-war/WEB-INF/classes/Resource.properties 2007-03-22
00:34:11 UTC (rev 6802)
+++
trunk/core/src/resources/portal-core-war/WEB-INF/classes/Resource.properties 2007-03-23
08:55:44 UTC (rev 6803)
@@ -177,6 +177,8 @@
NAMENOTAVAILABLE=N/A
+MODIFIED_PROFILE=Your profile has been modified, the portal will be running with your
former profile until you log back in.
+
# Registration
REGISTER_NOT_LOGGED_IN=You are currently not logged in.
REGISTER_REGISTER=You can create an account.
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jsp/user/menu.jsp
===================================================================
(Binary files differ)
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/portlet.xml
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/portlet.xml 2007-03-22 00:34:11 UTC
(rev 6802)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/portlet.xml 2007-03-23 08:55:44 UTC
(rev 6803)
@@ -40,10 +40,10 @@
<init-param>
<description>Subscription mode</description>
<name>subscriptionMode</name>
+ <value>emailVerification</value>
<!--
- <value>emailVerification</value>
+ <value>automatic</value>
-->
- <value>automatic</value>
</init-param>
<init-param>
<description>Domain of your website for email
verification.</description>
Modified: trunk/core/src/resources/portal-server-war/error.jsp
===================================================================
--- trunk/core/src/resources/portal-server-war/error.jsp 2007-03-22 00:34:11 UTC (rev
6802)
+++ trunk/core/src/resources/portal-server-war/error.jsp 2007-03-23 08:55:44 UTC (rev
6803)
@@ -59,7 +59,7 @@
<!-- REAL CONTENT CELL : begin -->
<td style="background-color:#b4b4b4" align="center">
<b>JBoss Portal Login</b><br/><br/>
- <p style="color:red">Login failed !</p>
+ <p style="color:red"><%=
request.getAttribute("org.jboss.portal.loginError") %></p>
<table>
<tr>
<td align="right" width="50">
Property changes on: trunk/core-samples
___________________________________________________________________
Name: svn:ignore
- output
+ output
bin
Modified: trunk/core-samples/.classpath
===================================================================
--- trunk/core-samples/.classpath 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/core-samples/.classpath 2007-03-23 08:55:44 UTC (rev 6803)
@@ -10,5 +10,6 @@
<classpathentry combineaccessrules="false" kind="src"
path="/identity"/>
<classpathentry combineaccessrules="false" kind="src"
path="/portlet"/>
<classpathentry combineaccessrules="false" kind="src"
path="/theme"/>
+ <classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jboss-j2ee.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: trunk/identity/.classpath
===================================================================
--- trunk/identity/.classpath 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/identity/.classpath 2007-03-23 08:55:44 UTC (rev 6803)
@@ -21,5 +21,6 @@
<classpathentry kind="lib"
path="/thirdparty/jboss/jbossxb/lib/jboss-xml-binding.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jboss/microcontainer/lib/jboss-microcontainer.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jboss/microcontainer/lib/jboss-dependency.jar"/>
+ <classpathentry kind="lib"
path="/thirdparty/sun-servlet/lib/servlet-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: trunk/identity/build.xml
===================================================================
--- trunk/identity/build.xml 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/identity/build.xml 2007-03-23 08:55:44 UTC (rev 6803)
@@ -89,6 +89,7 @@
<!-- Configure thirdparty libraries -->
&libraries;
<path id="library.classpath">
+ <path refid="sun.servlet.classpath"/>
<path refid="jboss.microcontainer.classpath"/>
<path refid="jboss.jbossxb.classpath"/>
<path refid="apache.xerces.classpath"/>
Added: trunk/identity/src/main/org/jboss/portal/identity/UserStatus.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/UserStatus.java
(rev 0)
+++ trunk/identity/src/main/org/jboss/portal/identity/UserStatus.java 2007-03-23 08:55:44
UTC (rev 6803)
@@ -0,0 +1,45 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.identity;
+
+/**
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @version $Revision: 5907 $
+ */
+
+public class UserStatus {
+
+ public static UserStatus OK = new UserStatus(0);
+ public static UserStatus DISABLE = new UserStatus(1);
+ public static UserStatus UNEXISTING = new UserStatus(2);
+ public static UserStatus NOTASSIGNEDTOROLE = new UserStatus(3);
+ public static UserStatus WRONGPASSWORD = new UserStatus(4);
+
+ private int value;
+
+ private UserStatus(int value)
+ {
+ this.value = value;
+ }
+
+}
Modified: trunk/identity/src/main/org/jboss/portal/identity/auth/IdentityLoginModule.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/auth/IdentityLoginModule.java 2007-03-22
00:34:11 UTC (rev 6802)
+++
trunk/identity/src/main/org/jboss/portal/identity/auth/IdentityLoginModule.java 2007-03-23
08:55:44 UTC (rev 6803)
@@ -29,6 +29,8 @@
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.UserStatus;
import org.jboss.security.SimpleGroup;
import org.jboss.security.auth.spi.UsernamePasswordLoginModule;
@@ -37,6 +39,8 @@
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginException;
+import javax.security.jacc.PolicyContext;
+import javax.servlet.http.HttpServletRequest;
import javax.transaction.TransactionManager;
import java.security.Principal;
import java.security.acl.Group;
@@ -46,18 +50,24 @@
/**
* A login module that uses the user module.
- *
+ *
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
* @version $Revision$
*/
-public class IdentityLoginModule
- extends UsernamePasswordLoginModule
+public class IdentityLoginModule extends UsernamePasswordLoginModule
{
protected String userModuleJNDIName;
+
protected String roleModuleJNDIName;
+
+ protected String userProfileModuleJNDIName;
+
protected String membershipModuleJNDIName;
+
protected String additionalRole;
+
protected String havingRole;
public void initialize(Subject subject, CallbackHandler callbackHandler, Map
sharedState, Map options)
@@ -65,22 +75,30 @@
super.initialize(subject, callbackHandler, sharedState, options);
// Get data
- userModuleJNDIName = (String)options.get("userModuleJNDIName");
- roleModuleJNDIName = (String)options.get("roleModuleJNDIName");
- membershipModuleJNDIName =
(String)options.get("membershipModuleJNDIName");
- additionalRole = (String)options.get("additionalRole");
- havingRole = (String)options.get("havingRole");
+ userModuleJNDIName = (String) options.get("userModuleJNDIName");
+ roleModuleJNDIName = (String) options.get("roleModuleJNDIName");
+ userProfileModuleJNDIName = (String) options
+ .get("userProfileModuleJNDIName");
+ membershipModuleJNDIName = (String) options
+ .get("membershipModuleJNDIName");
+ additionalRole = (String) options.get("additionalRole");
+ havingRole = (String) options.get("havingRole");
// Some info
log.trace("userModuleJNDIName = " + userModuleJNDIName);
log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
+ log.trace("userProfileModuleJNDIName = " + userProfileModuleJNDIName);
log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
log.trace("additionalRole = " + additionalRole);
log.trace("havingRole = " + havingRole);
}
private UserModule userModule;
+
private RoleModule roleModule;
+
+ private UserProfileModule userProfileModule;
+
private MembershipModule membershipModule;
protected UserModule getUserModule() throws NamingException
@@ -102,6 +120,16 @@
return roleModule;
}
+ protected UserProfileModule getUserProfileModule() throws NamingException
+ {
+
+ if (userProfileModule == null) {
+ userProfileModule = (UserProfileModule) new InitialContext()
+ .lookup(userProfileModuleJNDIName);
+ }
+ return userProfileModule;
+ }
+
protected MembershipModule getMembershipModule() throws NamingException
{
@@ -119,57 +147,40 @@
protected boolean validatePassword(final String inputPassword, String
expectedPassword)
{
- Boolean isValid = Boolean.FALSE;
if (inputPassword != null)
{
try
{
try
{
- TransactionManager tm = (TransactionManager)new
InitialContext().lookup("java:/TransactionManager");
- isValid = (Boolean)Transactions.required(tm, new Transactions.Runnable()
+ HttpServletRequest request = (HttpServletRequest)
PolicyContext.getContext("javax.servlet.http.HttpServletRequest");
+
+ UserStatus userStatus = getUserStatus(inputPassword);
+
+ if (userStatus == UserStatus.DISABLE)
{
- public Object run() throws Exception
- {
- try
- {
- User user = getUserModule().findUserByUserName(getUsername());
- //in case module implementation doesn't throw proper
exception...
- if (user == null)
- {
- throw new NoSuchUserException("UserModule returned null
user object");
- }
- if (havingRole != null)
- {
- boolean hasTheRole = false;
- Set roles = getMembershipModule().getRoles(user);
- for (Iterator i = roles.iterator(); i.hasNext();)
- {
- Role role = (Role)i.next();
- if (havingRole.equals(role.getName()))
- {
- hasTheRole = true;
- break;
- }
- }
- if (!hasTheRole)
- {
- return Boolean.FALSE;
- }
- }
- return Boolean.valueOf(user.validatePassword(inputPassword));
- }
- catch (NoSuchUserException e)
- {
- //TODO: log or throw
- }
- catch (Exception e)
- {
- throw new LoginException(e.toString());
- }
- return Boolean.FALSE;
- }
- });
+ request.setAttribute("org.jboss.portal.loginError",
"Your account is disabled");
+ return false;
+ }
+ else if (userStatus == UserStatus.NOTASSIGNEDTOROLE)
+ {
+ request.setAttribute("org.jboss.portal.loginError", "The
user doesn't have the correct role");
+ return false;
+ }
+ else if ((userStatus == UserStatus.UNEXISTING) || userStatus ==
UserStatus.WRONGPASSWORD)
+ {
+ request.setAttribute("org.jboss.portal.loginError", "The
user doesn't exist or the password is incorrect");
+ return false;
+ }
+ else if (userStatus == UserStatus.OK)
+ {
+ return true;
+ }
+ else
+ {
+ log.error("Unexpected error while logging in");
+ return false;
+ }
}
catch (Exception e)
{
@@ -181,60 +192,128 @@
log.debug("Failed to validate password", e);
}
}
- return Boolean.TRUE.equals(isValid);
+ return false;
}
- protected Group[] getRoleSets() throws LoginException
+ protected UserStatus getUserStatus(final String inputPassword)
{
- try
- {
+ UserStatus result = UserStatus.OK;
+
+ try {
TransactionManager tm = (TransactionManager)new
InitialContext().lookup("java:/TransactionManager");
- return (Group[])Transactions.required(tm, new Transactions.Runnable()
+ UserStatus tmp = (UserStatus)Transactions.required(tm, new
Transactions.Runnable()
{
public Object run() throws Exception
{
try
{
User user = getUserModule().findUserByUserName(getUsername());
+ // in case module implementation doesn't throw proper
+ // exception...
+ if (user == null)
+ {
+ throw new NoSuchUserException("UserModule returned null user
object");
+ }
+ boolean enabled = false;
+ try {
+ Object enabledS;
+ enabledS = getUserProfileModule().getProperty(user,
+ User.INFO_USER_ENABLED);
+ if (enabledS != null && (enabledS instanceof Boolean)) {
+ enabled = ((Boolean)enabledS).booleanValue();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if (!enabled) {
+ return UserStatus.DISABLE;
+ }
+ if (havingRole != null)
+ {
+ boolean hasTheRole = false;
+ Set roles = getMembershipModule().getRoles(user);
+ for (Iterator i = roles.iterator(); i.hasNext();)
+ {
+ Role role = (Role)i.next();
+ if (havingRole.equals(role.getName()))
+ {
+ hasTheRole = true;
+ break;
+ }
+ }
+ if (!hasTheRole)
+ {
+ return UserStatus.NOTASSIGNEDTOROLE;
+ }
+ }
+ if (!user.validatePassword(inputPassword))
+ {
+ return UserStatus.WRONGPASSWORD;
+ }
+ }
+ catch (NoSuchUserException e1)
+ {
+ return UserStatus.UNEXISTING;
+ }
+ catch (Exception e)
+ {
+ throw new LoginException(e.toString());
+ }
+ return null;
+ }
+ });
+ if (tmp != null)
+ {
+ result = tmp;
+ }
+ } catch (NamingException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return result;
+ }
+
+ protected Group[] getRoleSets() throws LoginException
+ {
+ try {
+ TransactionManager tm = (TransactionManager) new InitialContext()
+ .lookup("java:/TransactionManager");
+ return (Group[]) Transactions.required(tm, new Transactions.Runnable()
+ {
+ public Object run() throws Exception
+ {
+ try {
+ User user = getUserModule().findUserByUserName(getUsername());
Set roles = getMembershipModule().getRoles(user);
//
Group rolesGroup = new SimpleGroup("Roles");
//
- if (additionalRole != null)
- {
+ if (additionalRole != null) {
rolesGroup.addMember(createIdentity(additionalRole));
}
//
- for (Iterator iterator = roles.iterator(); iterator.hasNext();)
- {
- Role role = (Role)iterator.next();
+ for (Iterator iterator = roles.iterator(); iterator.hasNext();) {
+ Role role = (Role) iterator.next();
String roleName = role.getName();
- try
- {
+ try {
Principal p = createIdentity(roleName);
rolesGroup.addMember(p);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.debug("Failed to create principal " + roleName,
e);
}
}
//
- return new Group[]{rolesGroup};
- }
- catch (Exception e)
- {
+ return new Group[] { rolesGroup };
+ } catch (Exception e) {
throw new LoginException(e.toString());
}
}
});
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
Throwable cause = e.getCause();
throw new LoginException(cause.toString());
}
Modified: trunk/jems/.classpath
===================================================================
--- trunk/jems/.classpath 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/jems/.classpath 2007-03-23 08:55:44 UTC (rev 6803)
@@ -24,5 +24,6 @@
<classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jboss-system.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jmx-invoker-adaptor-client.jar"/>
<classpathentry combineaccessrules="false" kind="src"
path="/common"/>
+ <classpathentry kind="lib"
path="/thirdparty/apache-xerces/lib/xml-apis.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Property changes on: trunk/portlet-server
___________________________________________________________________
Name: svn:ignore
+ bin
output
Modified: trunk/registration/.classpath
===================================================================
--- trunk/registration/.classpath 2007-03-22 00:34:11 UTC (rev 6802)
+++ trunk/registration/.classpath 2007-03-23 08:55:44 UTC (rev 6803)
@@ -9,5 +9,6 @@
<classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jboss-system.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jboss-jmx.jar"/>
<classpathentry kind="lib"
path="/thirdparty/junit/lib/junit.jar"/>
+ <classpathentry kind="lib"
path="/thirdparty/apache-xerces/lib/xml-apis.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>