Author: rareddy
Date: 2009-07-07 12:47:45 -0400 (Tue, 07 Jul 2009)
New Revision: 1096
Removed:
trunk/embedded/src/main/java/com/metamatrix/platform/PlatformPlugin.java
trunk/embedded/src/main/java/com/metamatrix/platform/util/
trunk/embedded/src/main/resources/com/metamatrix/platform/
Modified:
trunk/embedded/src/main/java/com/metamatrix/platform/security/authorization/service/AuthorizationServiceImpl.java
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/service/MembershipServiceImpl.java
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/spi/ldap/LDAPMembershipDomain.java
trunk/embedded/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java
trunk/embedded/src/main/java/org/teiid/transport/ServerWorkItem.java
trunk/embedded/src/main/java/org/teiid/transport/SocketTransport.java
trunk/embedded/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties
trunk/engine/src/main/java/com/metamatrix/query/util/ErrorMessageKeys.java
Log:
TEIID-704: The message was missing in the i18n.properties file. Also, removed all the
PlatformPlugin and moved all the messages to EmbeddedPlugin.
Deleted: trunk/embedded/src/main/java/com/metamatrix/platform/PlatformPlugin.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/platform/PlatformPlugin.java 2009-07-06
21:17:43 UTC (rev 1095)
+++ trunk/embedded/src/main/java/com/metamatrix/platform/PlatformPlugin.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library 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 library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.platform;
-
-import java.util.ResourceBundle;
-
-import com.metamatrix.core.BundleUtil;
-
-/*
- * TODO: remove me
- *
- */
-
-public class PlatformPlugin {
-
- public static final String PLUGIN_ID = "com.metamatrix.platform" ;
//$NON-NLS-1$
- private static final String BUNDLE_NAME = PLUGIN_ID + ".i18n";
//$NON-NLS-1$
- public static final BundleUtil Util = new
BundleUtil(PLUGIN_ID,BUNDLE_NAME,ResourceBundle.getBundle(BUNDLE_NAME));
-
-
-}
Modified:
trunk/embedded/src/main/java/com/metamatrix/platform/security/authorization/service/AuthorizationServiceImpl.java
===================================================================
---
trunk/embedded/src/main/java/com/metamatrix/platform/security/authorization/service/AuthorizationServiceImpl.java 2009-07-06
21:17:43 UTC (rev 1095)
+++
trunk/embedded/src/main/java/com/metamatrix/platform/security/authorization/service/AuthorizationServiceImpl.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -29,7 +29,6 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Properties;
import java.util.Set;
@@ -44,7 +43,6 @@
import com.metamatrix.admin.api.exception.security.InvalidSessionException;
import com.metamatrix.admin.api.exception.security.MetaMatrixSecurityException;
import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.security.AuthorizationException;
import com.metamatrix.api.exception.security.AuthorizationMgmtException;
import com.metamatrix.api.exception.security.InvalidPrincipalException;
import com.metamatrix.api.exception.security.MembershipServiceException;
@@ -56,11 +54,11 @@
import com.metamatrix.common.vdb.api.VDBArchive;
import com.metamatrix.core.log.MessageLevel;
import com.metamatrix.core.util.LRUCache;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.service.AuditMessage;
import com.metamatrix.dqp.service.AuthorizationService;
import com.metamatrix.dqp.service.VDBService;
import com.metamatrix.dqp.util.LogConstants;
-import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.security.api.AuthorizationActions;
import com.metamatrix.platform.security.api.AuthorizationPermission;
import com.metamatrix.platform.security.api.AuthorizationPolicy;
@@ -74,7 +72,6 @@
import com.metamatrix.platform.security.api.StandardAuthorizationActions;
import com.metamatrix.platform.security.api.service.MembershipServiceInterface;
import com.metamatrix.platform.security.util.RolePermissionFactory;
-import com.metamatrix.platform.util.ErrorMessageKeys;
import com.metamatrix.server.util.ServerAuditContexts;
import com.metamatrix.vdb.runtime.VDBKey;
@@ -202,7 +199,7 @@
}
}
} catch (InvalidPrincipalException e) {
- throw new AuthorizationMgmtException(e,
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_AUTHORIZATION_0020));
+ throw new AuthorizationMgmtException(e,
DQPEmbeddedPlugin.Util.getString("AuthorizationServiceImpl.invalid_session"));
//$NON-NLS-1$
}
if (results.isEmpty()) {
@@ -233,15 +230,14 @@
AuthorizationRealm aRealm = aPerm.getRealm();
if ( theRealm != null ) {
if ( ! theRealm.equals(aRealm) ) {
- throw new
AuthorizationMgmtException(ErrorMessageKeys.SEC_AUTHORIZATION_0078,
-
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_AUTHORIZATION_0078));
+ throw new
AuthorizationMgmtException(DQPEmbeddedPlugin.Util.getString("AuthorizationServiceImpl.wrong_realms
")); //$NON-NLS-1$
}
} else {
theRealm = aRealm;
}
}
if ( theRealm == null ) {
- throw new
AuthorizationMgmtException(PlatformPlugin.Util.getString("AuthorizationServiceImpl.Authorization_Realm_is_null"));
//$NON-NLS-1$
+ throw new
AuthorizationMgmtException(DQPEmbeddedPlugin.Util.getString("AuthorizationServiceImpl.Authorization_Realm_is_null"));
//$NON-NLS-1$
}
return theRealm;
}
@@ -474,8 +470,7 @@
} catch (InvalidPrincipalException e) {
throw e;
} catch (MetaMatrixSecurityException e) {
- String msg =
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_AUTHORIZATION_0035);
- throw new AuthorizationMgmtException(e,
ErrorMessageKeys.SEC_AUTHORIZATION_0035, msg);
+ throw new AuthorizationMgmtException(e,
DQPEmbeddedPlugin.Util.getString("AuthorizationServiceImpl.error_seraching_policies"));
//$NON-NLS-1$
}
return allPrincipals;
}
@@ -487,7 +482,7 @@
return true;
}
} catch (MembershipServiceException e) {
-
LogManager.logError(com.metamatrix.common.util.LogConstants.CTX_AUTHORIZATION, e,
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_AUTHORIZATION_0075));
+
LogManager.logError(com.metamatrix.common.util.LogConstants.CTX_AUTHORIZATION, e,
DQPEmbeddedPlugin.Util.getString("AuthorizationServiceImpl.failed_to_get_groups"));
//$NON-NLS-1$
}
return false;
}
Modified:
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/service/MembershipServiceImpl.java
===================================================================
---
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/service/MembershipServiceImpl.java 2009-07-06
21:17:43 UTC (rev 1095)
+++
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/service/MembershipServiceImpl.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -59,8 +59,8 @@
import com.metamatrix.common.util.crypto.CryptoException;
import com.metamatrix.common.util.crypto.CryptoUtil;
import com.metamatrix.core.util.StringUtil;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
-import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.security.api.BasicMetaMatrixPrincipal;
import com.metamatrix.platform.security.api.Credentials;
import com.metamatrix.platform.security.api.MetaMatrixPrincipal;
@@ -71,7 +71,6 @@
import com.metamatrix.platform.security.api.service.SuccessfulAuthenticationToken;
import com.metamatrix.platform.security.membership.spi.MembershipDomain;
import com.metamatrix.platform.security.membership.spi.MembershipSourceException;
-import com.metamatrix.platform.util.ErrorMessageKeys;
/**
* This class serves as the primary implementation of the
@@ -154,7 +153,7 @@
adminCredentials = env.getProperty(ADMIN_PASSWORD);
if (adminCredentials == null || adminCredentials.length() == 0) {
- throw new
ApplicationInitializationException(PlatformPlugin.Util.getString("MembershipServiceImpl.Root_password_required"));
//$NON-NLS-1$
+ throw new
ApplicationInitializationException(DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Root_password_required"));
//$NON-NLS-1$
}
String property = env.getProperty(ADMIN_HOSTS);
@@ -167,7 +166,7 @@
//TODO: my caller should have already decrypted this for me
adminCredentials = CryptoUtil.stringDecrypt(adminCredentials);
} catch (CryptoException err) {
- LogManager.logCritical(LogConstants.CTX_MEMBERSHIP, err,
PlatformPlugin.Util.getString("MembershipServiceImpl.Root_password_decryption_failed"));
//$NON-NLS-1$
+ LogManager.logCritical(LogConstants.CTX_MEMBERSHIP, err,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Root_password_decryption_failed"));
//$NON-NLS-1$
throw new ApplicationInitializationException(err);
}
}
@@ -189,7 +188,7 @@
continue;
}
MembershipDomain newDomain = createDomain(domainName, domainProps);
- LogManager.logInfo(LogConstants.CTX_MEMBERSHIP,
PlatformPlugin.Util.getString("MSG.014.407.0005", domainName)); //$NON-NLS-1$
+ LogManager.logInfo(LogConstants.CTX_MEMBERSHIP,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.loaded", domainName));
//$NON-NLS-1$
if(newDomain!=null) {
this.domains.add(new MembershipDomainHolder(newDomain, domainName));
}
@@ -220,12 +219,10 @@
try {
domain = (MembershipDomain)
Thread.currentThread().getContextClassLoader().loadClass(className).newInstance();
} catch (Throwable e) {
- String msg =
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_MEMBERSHIP_0023, className);
- throw new ApplicationInitializationException(e,
ErrorMessageKeys.SEC_MEMBERSHIP_0023, msg);
+ throw new ApplicationInitializationException(e,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.failed_to_create",
className)); //$NON-NLS-1$
}
} else {
- String msg =
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_MEMBERSHIP_0024, domainName);
- throw new
ApplicationInitializationException(ErrorMessageKeys.SEC_MEMBERSHIP_0024, msg);
+ throw new
ApplicationInitializationException(DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.unable_to_create",
domainName)); //$NON-NLS-1$
}
properties.setProperty(DOMAIN_NAME, domainName);
@@ -254,7 +251,7 @@
try {
domainHolder.getMembershipDomain().shutdown();
} catch ( Exception e ) {
- LogManager.logError(LogConstants.CTX_MEMBERSHIP, e,
ErrorMessageKeys.SEC_MEMBERSHIP_0026);
+ LogManager.logError(LogConstants.CTX_MEMBERSHIP, e,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.error_shuting_down "));
//$NON-NLS-1$
}
}
this.domains.clear();
@@ -296,7 +293,7 @@
credential = new
Credentials(CryptoUtil.stringDecrypt(password).toCharArray());
} catch (CryptoException err) {
//just log and allow the normal authentication flow
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Decrypt_failed", username);
//$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Decrypt_failed",
username); //$NON-NLS-1$
LogManager.logWarning(LogConstants.CTX_MEMBERSHIP, err, msg);
}
}
@@ -310,11 +307,11 @@
if (isSecurityEnabled && allowedAddresses != null) {
String address = DQPWorkContext.getWorkContext().getClientAddress();
if (address == null) {
- LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
PlatformPlugin.Util.getString("MembershipServiceImpl.unknown_host"));
//$NON-NLS-1$
+ LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.unknown_host"));
//$NON-NLS-1$
return new FailedAuthenticationToken();
}
if (!allowedAddresses.matcher(address).matches() &&
!address.equals(this.hostAddress.getHostAddress())) {
- LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
PlatformPlugin.Util.getString("MembershipServiceImpl.invalid_host", address,
allowedAddresses.pattern())); //$NON-NLS-1$
+ LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.invalid_host", address,
allowedAddresses.pattern())); //$NON-NLS-1$
return new FailedAuthenticationToken();
}
}
@@ -350,26 +347,26 @@
}
return new SuccessfulAuthenticationToken(auth.getPayload(),
baseUsername + MembershipServiceInterface.AT + domain);
}
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Null_authentication",
entry.getDomainName(), username ); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Null_authentication",
entry.getDomainName(), username ); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, msg);
return new FailedAuthenticationToken();
} catch (LogonException le) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Logon_failed",
entry.getDomainName(), username ); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Logon_failed",
entry.getDomainName(), username ); //$NON-NLS-1$
LogManager.logWarning(LogConstants.CTX_MEMBERSHIP, le, msg);
return new FailedAuthenticationToken();
} catch (InvalidUserException e) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Invalid_user",
entry.getDomainName(), username ); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Invalid_user",
entry.getDomainName(), username ); //$NON-NLS-1$
LogManager.logDetail(LogConstants.CTX_MEMBERSHIP, e, msg);
} catch (UnsupportedCredentialException e) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Unsupported_credentials",
entry.getDomainName(), username ); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Unsupported_credentials",
entry.getDomainName(), username ); //$NON-NLS-1$
LogManager.logDetail(LogConstants.CTX_MEMBERSHIP, e, msg);
} catch (MembershipSourceException e) {
//just skip this domain for now
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.source_exception",
entry.getDomainName()); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.source_exception",
entry.getDomainName()); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, e, msg);
}
}
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.Failed_authentication",
username ); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.Failed_authentication",
username ); //$NON-NLS-1$
LogManager.logDetail(LogConstants.CTX_MEMBERSHIP, msg);
return new FailedAuthenticationToken();
}
@@ -497,7 +494,7 @@
// If baseName is null, or domain cannot be uniquely determined throw exception
if (baseName==null || userDomains.size() != 1) {
- throw new
InvalidPrincipalException(ErrorMessageKeys.SEC_MEMBERSHIP_0031,PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_MEMBERSHIP_0031,
name));
+ throw new
InvalidPrincipalException(DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.invalid_principal",
name)); //$NON-NLS-1$
}
MembershipDomainHolder domain = (MembershipDomainHolder)
userDomains.iterator().next();
@@ -514,15 +511,15 @@
return new BasicMetaMatrixPrincipal(name, MetaMatrixPrincipal.TYPE_GROUP);
}
} catch ( InvalidPrincipalException e ) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.principal_does_not_exist",
name, domain.getDomainName()); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.principal_does_not_exist",
name, domain.getDomainName()); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, e, msg);
throw new InvalidPrincipalException(msg);
} catch (Throwable e) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.source_exception",
domain.getDomainName()); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.source_exception",
domain.getDomainName()); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, e, msg);
throw new MembershipServiceException(msg);
}
- throw new
InvalidPrincipalException(PlatformPlugin.Util.getString("MembershipServiceImpl.principal_does_not_exist",
name, domain.getDomainName())); //$NON-NLS-1$
+ throw new
InvalidPrincipalException(DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.principal_does_not_exist",
name, domain.getDomainName())); //$NON-NLS-1$
}
private Set<String> getDomainSpecificGroups(Set<String> groups, String
domainName) {
@@ -576,7 +573,7 @@
try {
result.addAll(
getDomainSpecificGroups(domain.getMembershipDomain().getGroupNames(),
domain.getDomainName()) );
} catch (Throwable e) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.source_exception",
domain.getDomainName()); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.source_exception",
domain.getDomainName()); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, e, msg);
throw new MembershipServiceException(msg);
}
@@ -626,7 +623,7 @@
try {
return getDomainSpecificGroups(dHolder.getMembershipDomain().getGroupNames(),
domainName);
} catch (Throwable e) {
- String msg =
PlatformPlugin.Util.getString("MembershipServiceImpl.source_exception",
dHolder.getDomainName()); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("MembershipServiceImpl.source_exception",
dHolder.getDomainName()); //$NON-NLS-1$
LogManager.logError(LogConstants.CTX_MEMBERSHIP, e, msg);
throw new MembershipServiceException(msg);
}
Modified:
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/spi/ldap/LDAPMembershipDomain.java
===================================================================
---
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/spi/ldap/LDAPMembershipDomain.java 2009-07-06
21:17:43 UTC (rev 1095)
+++
trunk/embedded/src/main/java/com/metamatrix/platform/security/membership/spi/ldap/LDAPMembershipDomain.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -50,7 +50,7 @@
import com.metamatrix.api.exception.security.UnsupportedCredentialException;
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.util.LogConstants;
-import com.metamatrix.platform.PlatformPlugin;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.platform.security.api.Credentials;
import com.metamatrix.platform.security.api.service.MembershipServiceInterface;
import com.metamatrix.platform.security.api.service.SuccessfulAuthenticationToken;
@@ -143,7 +143,7 @@
ldapURL = getPropertyValue(props, LDAP_URL, null);
if (ldapURL == null) {
- throw new
MembershipSourceException(PlatformPlugin.Util.getString("LDAPMembershipDomain.Required_property",
LDAP_URL)); //$NON-NLS-1$
+ throw new
MembershipSourceException(DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.Required_property",
LDAP_URL)); //$NON-NLS-1$
}
usersRootContexts = buildContexts(USERS_ROOT_CONTEXT,
@@ -164,7 +164,7 @@
if (props.getProperty(USERS_MEMBER_OF_ATTRIBUTE, "").trim().length() ==
0 //$NON-NLS-1$
&& props.getProperty(GROUPS_GROUP_MEMBER_ATTRIBUTE,
"").trim().length() == 0) { //$NON-NLS-1$
- LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
PlatformPlugin.Util.getString("LDAPMembershipDomain.Require_memberof_property",
domainName ) ); //$NON-NLS-1$
+ LogManager.logWarning(LogConstants.CTX_MEMBERSHIP,
DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.Require_memberof_property",
domainName ) ); //$NON-NLS-1$
}
// Create the root context.
@@ -198,7 +198,7 @@
String rootContextsStr = props.getProperty(rootContextsProp, null);
if (rootContextsStr == null) {
- throw new
MembershipSourceException(PlatformPlugin.Util.getString("LDAPMembershipDomain.Required_property",
rootContextsProp)); //$NON-NLS-1$
+ throw new
MembershipSourceException(DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.Required_property",
rootContextsProp)); //$NON-NLS-1$
}
String searchFilterStr = props.getProperty(searchFilterProp);
@@ -286,13 +286,13 @@
domainName, "authenticateUser username", username,
"applicationName", applicationName}); //$NON-NLS-1$ //$NON-NLS-2$
if (username == null) {
- throw new
UnsupportedCredentialException(PlatformPlugin.Util.getString("LDAPMembershipDomain.No_annonymous",
domainName)); //$NON-NLS-1$
+ throw new
UnsupportedCredentialException(DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.No_annonymous",
domainName)); //$NON-NLS-1$
}
UserEntry ue = getUserEntry(username, false);
if (credential == null) {
- throw new
UnsupportedCredentialException(PlatformPlugin.Util.getString("LDAPMembershipDomain.No_annonymous",
domainName)); //$NON-NLS-1$
+ throw new
UnsupportedCredentialException(DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.No_annonymous",
domainName)); //$NON-NLS-1$
}
Hashtable connenv = new Hashtable();
@@ -350,7 +350,7 @@
try {
return new InitialDirContext((Hashtable)adminContext.clone());
} catch (AuthenticationException err) {
- throw new MembershipSourceException(err,
PlatformPlugin.Util.getString("LDAPMembershipDomain.Admin_credentials",
domainName)); //$NON-NLS-1$
+ throw new MembershipSourceException(err,
DQPEmbeddedPlugin.Util.getString("LDAPMembershipDomain.Admin_credentials",
domainName)); //$NON-NLS-1$
} catch (NamingException err) {
throw new MembershipSourceException(err);
}
Modified:
trunk/embedded/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
===================================================================
---
trunk/embedded/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-07-06
21:17:43 UTC (rev 1095)
+++
trunk/embedded/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -50,10 +50,10 @@
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.util.LogConstants;
import com.metamatrix.core.util.ArgCheck;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.service.VDBService;
import com.metamatrix.metadata.runtime.exception.VirtualDatabaseDoesNotExistException;
import com.metamatrix.metadata.runtime.exception.VirtualDatabaseException;
-import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.security.api.Credentials;
import com.metamatrix.platform.security.api.MetaMatrixPrincipal;
import com.metamatrix.platform.security.api.MetaMatrixPrincipalName;
@@ -63,8 +63,6 @@
import com.metamatrix.platform.security.api.service.MembershipServiceInterface;
import com.metamatrix.platform.security.api.service.SessionListener;
import com.metamatrix.platform.security.api.service.SessionServiceInterface;
-import com.metamatrix.platform.util.ErrorMessageKeys;
-import com.metamatrix.platform.util.LogMessageKeys;
import com.metamatrix.platform.util.ProductInfoConstants;
/**
@@ -99,10 +97,10 @@
for (MetaMatrixSessionInfo info : sessionCache.values()) {
try {
if (currentTime - info.getLastPingTime() > ServerConnection.PING_INTERVAL * 5)
{
- LogManager.logInfo(LogConstants.CTX_SESSION, PlatformPlugin.Util.getString(
"SessionServiceImpl.keepaliveFailed", info.getSessionID())); //$NON-NLS-1$
+ LogManager.logInfo(LogConstants.CTX_SESSION, DQPEmbeddedPlugin.Util.getString(
"SessionServiceImpl.keepaliveFailed", info.getSessionID())); //$NON-NLS-1$
closeSession(info.getSessionID());
} else if (sessionTimeLimit > 0 && currentTime - info.getTimeCreated()
> sessionTimeLimit) {
- LogManager.logInfo(LogConstants.CTX_SESSION, PlatformPlugin.Util.getString(
"SessionServiceImpl.expireSession", info.getSessionID())); //$NON-NLS-1$
+ LogManager.logInfo(LogConstants.CTX_SESSION, DQPEmbeddedPlugin.Util.getString(
"SessionServiceImpl.expireSession", info.getSessionID())); //$NON-NLS-1$
closeSession(info.getSessionID());
}
} catch (Exception e) {
@@ -117,7 +115,7 @@
LogManager.logDetail(LogConstants.CTX_SESSION, new Object[] {"closeSession",
sessionID}); //$NON-NLS-1$
MetaMatrixSessionInfo info = this.sessionCache.remove(sessionID);
if (info == null) {
- throw new InvalidSessionException(ErrorMessageKeys.SEC_SESSION_0027,
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_SESSION_0027, sessionID));
+ throw new
InvalidSessionException(DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.invalid_session",
sessionID)); //$NON-NLS-1$
}
if (info.getProductInfo(ProductInfoConstants.VIRTUAL_DB) != null) {
try {
@@ -161,9 +159,9 @@
throw new SessionServiceException(e);
} catch (VirtualDatabaseException e) {
if (vdbVersion == null) {
- throw new
SessionServiceException(e,PlatformPlugin.Util.getString("SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database",
new Object[] {vdbName})); //$NON-NLS-1$
+ throw new
SessionServiceException(e,DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database",
new Object[] {vdbName})); //$NON-NLS-1$
}
- throw new
SessionServiceException(e,PlatformPlugin.Util.getString("SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database_{0}_of_version_{1}",
new Object[] {vdbName, vdbVersion})); //$NON-NLS-1$
+ throw new
SessionServiceException(e,DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database_{0}_of_version_{1}",
new Object[] {vdbName, vdbVersion})); //$NON-NLS-1$
} catch (MetaMatrixComponentException e) {
throw new SessionServiceException(e);
}
@@ -173,7 +171,7 @@
}
if (sessionMaxLimit > 0 && getActiveSessionsCount() >=
sessionMaxLimit) {
- throw new
SessionServiceException(LogMessageKeys.SEC_SESSION_0067,PlatformPlugin.Util.getString(LogMessageKeys.SEC_SESSION_0067,
new Object[] {new Long(sessionMaxLimit)}));
+ throw new
SessionServiceException(DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.reached_max_sessions",
new Object[] {new Long(sessionMaxLimit)})); //$NON-NLS-1$
}
long creationTime = System.currentTimeMillis();
@@ -207,9 +205,7 @@
authenticatedToken = this.membershipService.authenticateUser(userName,
credentials, trustedToken, applicationName);
}catch (MetaMatrixSecurityException e) {
- String msg = PlatformPlugin.Util
- .getString(
- "SessionServiceImpl.Membership_service_could_not_authenticate_user", new
Object[] { userName }); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.Membership_service_could_not_authenticate_user",
new Object[] { userName }); //$NON-NLS-1$
SessionServiceException se = new SessionServiceException(e, msg);
throw se;
}
@@ -220,7 +216,7 @@
// level issue.
if (!authenticatedToken.isAuthenticated()) {
Object[] params = new Object[] { userName };
- String msg =
PlatformPlugin.Util.getString("SessionServiceImpl.The_username_0_and/or_password_are_incorrect",
params); //$NON-NLS-1$
+ String msg =
DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.The_username_0_and/or_password_are_incorrect",
params); //$NON-NLS-1$
throw new MetaMatrixAuthenticationException(msg);
}
@@ -246,7 +242,7 @@
try {
return membershipService.getPrincipal(new
MetaMatrixPrincipalName(sessionInfo.getUserName(), MetaMatrixPrincipal.TYPE_USER));
} catch (MetaMatrixSecurityException e) {
- throw new SessionServiceException(e,
LogMessageKeys.SEC_SESSION_0043,PlatformPlugin.Util.getString(LogMessageKeys.SEC_SESSION_0043,sessionInfo.getUserName()));
+ throw new SessionServiceException(e,
DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.failed_to_getprincipal",sessionInfo.getUserName()));
//$NON-NLS-1$
}
}
@@ -274,16 +270,14 @@
}
@Override
- public boolean terminateSession(MetaMatrixSessionID terminatedSessionID,
- MetaMatrixSessionID adminSessionID) throws
- AuthorizationException, SessionServiceException {
+ public boolean terminateSession(MetaMatrixSessionID
terminatedSessionID,MetaMatrixSessionID adminSessionID) throws AuthorizationException,
SessionServiceException {
Object[] params = {adminSessionID, terminatedSessionID};
- LogManager.logInfo(LogConstants.CTX_SESSION, PlatformPlugin.Util.getString(
"SessionServiceImpl.terminateSession", params)); //$NON-NLS-1$
+ LogManager.logInfo(LogConstants.CTX_SESSION, DQPEmbeddedPlugin.Util.getString(
"SessionServiceImpl.terminateSession", params)); //$NON-NLS-1$
try {
closeSession(terminatedSessionID);
return true;
} catch (InvalidSessionException e) {
- LogManager.logWarning(LogConstants.CTX_SESSION,e,PlatformPlugin.Util.getString(LogMessageKeys.SEC_SESSION_0034,
new Object[] {e.getMessage()}));
+ LogManager.logWarning(LogConstants.CTX_SESSION,e,DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.invalid_session",
new Object[] {e.getMessage()})); //$NON-NLS-1$
return false;
}
}
@@ -299,7 +293,7 @@
throws InvalidSessionException {
MetaMatrixSessionInfo info = this.sessionCache.get(sessionID);
if (info == null) {
- throw new InvalidSessionException(ErrorMessageKeys.SEC_SESSION_0027,
PlatformPlugin.Util.getString(ErrorMessageKeys.SEC_SESSION_0027, sessionID));
+ throw new
InvalidSessionException(DQPEmbeddedPlugin.Util.getString("SessionServiceImpl.invalid_session",
sessionID)); //$NON-NLS-1$
}
return info;
}
Modified: trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java
===================================================================
--- trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java 2009-07-06 21:17:43
UTC (rev 1095)
+++ trunk/embedded/src/main/java/org/teiid/transport/LogonImpl.java 2009-07-07 16:47:45
UTC (rev 1096)
@@ -41,8 +41,8 @@
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.util.LogConstants;
import com.metamatrix.dqp.client.ResultsFuture;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.jdbc.api.ConnectionProperties;
-import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.security.api.Credentials;
import com.metamatrix.platform.security.api.ILogon;
import com.metamatrix.platform.security.api.LogonResult;
@@ -97,7 +97,7 @@
// Check if both credentials AND session token are used - if so, this is an error
if(connProps.containsKey(ConnectionProperties.PROP_CLIENT_SESSION_PAYLOAD)) {
- throw new
LogonException(PlatformPlugin.Util.getString("LogonImpl.Invalid_use_of_credentials_and_token"));
//$NON-NLS-1$
+ throw new
LogonException(DQPEmbeddedPlugin.Util.getString("LogonImpl.Invalid_use_of_credentials_and_token"));
//$NON-NLS-1$
}
// Parse credentials and store CredentialMap as session token
Modified: trunk/embedded/src/main/java/org/teiid/transport/ServerWorkItem.java
===================================================================
--- trunk/embedded/src/main/java/org/teiid/transport/ServerWorkItem.java 2009-07-06
21:17:43 UTC (rev 1095)
+++ trunk/embedded/src/main/java/org/teiid/transport/ServerWorkItem.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -47,7 +47,7 @@
import com.metamatrix.core.MetaMatrixRuntimeException;
import com.metamatrix.core.util.ReflectionHelper;
import com.metamatrix.dqp.client.ResultsFuture;
-import com.metamatrix.platform.PlatformPlugin;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.platform.security.api.ILogon;
import com.metamatrix.platform.security.api.service.SessionServiceInterface;
@@ -86,7 +86,7 @@
final ServiceInvocationStruct serviceStruct =
(ServiceInvocationStruct)message.getContents();
Object instance = server.getClientService(serviceStruct.targetClass);
if (instance == null) {
- throw new
ComponentNotFoundException(PlatformPlugin.Util.getString("ServerWorkItem.Component_Not_Found",
serviceStruct.targetClass)); //$NON-NLS-1$
+ throw new
ComponentNotFoundException(DQPEmbeddedPlugin.Util.getString("ServerWorkItem.Component_Not_Found",
serviceStruct.targetClass)); //$NON-NLS-1$
}
if (!(instance instanceof ILogon)) {
DQPWorkContext workContext = this.socketClientInstance.getWorkContext();
@@ -161,7 +161,7 @@
} else if (e instanceof AdminProcessingException) {
logProcessingException(e, context);
} else {
- LogManager.logError(context, e,
PlatformPlugin.Util.getString("ServerWorkItem.Received_exception_processing_request",
this.socketClientInstance.getWorkContext().getConnectionID())); //$NON-NLS-1$
+ LogManager.logError(context, e,
DQPEmbeddedPlugin.Util.getString("ServerWorkItem.Received_exception_processing_request",
this.socketClientInstance.getWorkContext().getConnectionID())); //$NON-NLS-1$
}
return new ExceptionHolder(e);
@@ -174,7 +174,7 @@
}
StackTraceElement elem = cause.getStackTrace()[0];
LogManager.logDetail(context, e, "Processing exception for session",
this.socketClientInstance.getWorkContext().getConnectionID()); //$NON-NLS-1$
- LogManager.logWarning(context,
PlatformPlugin.Util.getString("ServerWorkItem.processing_error", e.getMessage(),
this.socketClientInstance.getWorkContext().getConnectionID(), e.getClass().getName(),
elem)); //$NON-NLS-1$
+ LogManager.logWarning(context,
DQPEmbeddedPlugin.Util.getString("ServerWorkItem.processing_error",
e.getMessage(), this.socketClientInstance.getWorkContext().getConnectionID(),
e.getClass().getName(), elem)); //$NON-NLS-1$
}
}
\ No newline at end of file
Modified: trunk/embedded/src/main/java/org/teiid/transport/SocketTransport.java
===================================================================
--- trunk/embedded/src/main/java/org/teiid/transport/SocketTransport.java 2009-07-06
21:17:43 UTC (rev 1095)
+++ trunk/embedded/src/main/java/org/teiid/transport/SocketTransport.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -23,7 +23,6 @@
import java.io.IOException;
import java.net.InetAddress;
-import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
import java.util.Properties;
@@ -31,12 +30,11 @@
import com.metamatrix.common.comm.ClientServiceRegistry;
import com.metamatrix.common.log.LogManager;
import com.metamatrix.common.queue.WorkerPoolStats;
-import com.metamatrix.common.util.ApplicationInfo;
import com.metamatrix.common.util.LogConstants;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.core.MetaMatrixRuntimeException;
+import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
-import com.metamatrix.platform.PlatformPlugin;
import com.metamatrix.platform.security.api.service.SessionServiceInterface;
import com.metamatrix.platform.vm.controller.SocketListenerStats;
@@ -74,15 +72,15 @@
SSLConfiguration helper = new SSLConfiguration();
helper.init(this.props);
- LogManager.logDetail(LogConstants.CTX_SERVER,
PlatformPlugin.Util.getString("SocketVMController.1", new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
+ LogManager.logDetail(LogConstants.CTX_SERVER,
DQPEmbeddedPlugin.Util.getString("SocketTransport.1", new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
this.listener = new SocketListener(socketPort, bindAddress, this.clientServices,
inputBufferSize, outputBufferSize, maxThreads, helper.getServerSSLEngine(),
helper.isClientEncryptionEnabled(), this.sessionSerice);
} catch (UnknownHostException e) {
- throw new MetaMatrixRuntimeException(e,
PlatformPlugin.Util.getString("SocketVMController.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
+ throw new MetaMatrixRuntimeException(e,
DQPEmbeddedPlugin.Util.getString("SocketTransport.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e,
PlatformPlugin.Util.getString("SocketVMController.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
+ throw new MetaMatrixRuntimeException(e,
DQPEmbeddedPlugin.Util.getString("SocketTransport.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
} catch (GeneralSecurityException e) {
- throw new MetaMatrixRuntimeException(e,
PlatformPlugin.Util.getString("SocketVMController.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
+ throw new MetaMatrixRuntimeException(e,
DQPEmbeddedPlugin.Util.getString("SocketTransport.2",new Object[] {bindAddress,
String.valueOf(socketPort)})); //$NON-NLS-1$
}
}
Modified: trunk/embedded/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties
===================================================================
---
trunk/embedded/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties 2009-07-06
21:17:43 UTC (rev 1095)
+++
trunk/embedded/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties 2009-07-07
16:47:45 UTC (rev 1096)
@@ -210,4 +210,60 @@
ServerSecurityAdminImpl.not_implemented=This feature not available.
failed_to_load_admin_roles=Failed to load Admin role permissions
-admin_roles_not_defined=Admin Role permissions are not defined. Refer to
admin-roles.properties file
\ No newline at end of file
+admin_roles_not_defined=Admin Role permissions are not defined. Refer to
admin-roles.properties file
+
+# authorization service
+AuthorizationServiceImpl.invalid_session = The principal with SessionToken <{0}> is
invalid.
+AuthorizationServiceImpl.wrong_realms = Permission collection contains requests from
different realms.
+AuthorizationServiceImpl.error_seraching_policies=An exception occurred while searching
for all policy IDs.
+AuthorizationServiceImpl.failed_to_get_groups=Can''t get principal''s
groups from Membership service.
+AuthorizationServiceImpl.Authorization_Realm_is_null=The requested Authorization Realm is
null
+
+# membership service
+MembershipServiceImpl.loaded = Loaded membership domain: "{0}".
+MembershipServiceImpl.failed_to_create = Unable to create membership domain {0}
+MembershipServiceImpl.unable_to_create = Unable to create membership domain
"{0}". Factory class not found in environment properties.
+MembershipServiceImpl.invalid_principal = The principal "{0}" is invalid.
+MembershipServiceImpl.Null_authentication=Domain {0} returned a null authentication
result for user {1}
+MembershipServiceImpl.Invalid_user=Domain {0} indicated that user {1} was not valid
+MembershipServiceImpl.Unsupported_credentials=Domain {0} indicated that the credentials
were not supported
+MembershipServiceImpl.Failed_authentication={0} could not be authenticated in any domain
+MembershipServiceImpl.Root_password_required=password is required for super user
+MembershipServiceImpl.Root_password_decryption_failed=super password could not be
decrypted
+MembershipServiceImpl.principal_does_not_exist=The principal ''{0}'' does
not exist in domain ''{1}''
+MembershipServiceImpl.Decrypt_failed=Could not decrypt the encrypted password for user
''{0}''
+MembershipServiceImpl.source_exception=Membership Domain ''{0}'' failed
to perform the desired operation, please check the settings for this domain
+MembershipServiceImpl.load_error=Could not load file ''{0}'' from the
classpath, the file system, or as a URL.
+MembershipServiceImpl.unknown_host=Did not allow root user authentication attempt, since
root logons are restricted and could not determine the remote host.
+MembershipServiceImpl.invalid_host=Could not authenticate root user, since the client
address {0} is not in the allowed values {1}
+MembershipServiceImpl.error_shuting_down = Error shutting down domain after
''killService'' method received.
+MembershipServiceImpl.Logon_failed=log on failed for user {1} on the domain {0}
+
+LDAPMembershipDomain.No_annonymous=Annonymous user authentications are not allowed in
domain {0}
+LDAPMembershipDomain.Required_property=Required property {0} was missing.
+LDAPMembershipDomain.Admin_credentials=Admin DN and/or password supplied for LDAP
Membership Domain {0} are invalid.
+LDAPMembershipDomain.Require_memberof_property=Users in LDAP Membership Domain {0} will
not appear as members of any group since user's memberOf and group's memberOf
attributes are both unspecified.
+
+
+# session service
+SessionServiceImpl.invalid_session = The specified session ID "{0}" is invalid.
It cannot be found in the userbase.
+SessionServiceImpl.reached_max_sessions = The server has reached the maximum number of
sessions of {0} as defined by the property metamatrix.session.max.connections. If more
sessions are required, modify this property value in the MetaMatrix Console.
+SessionServiceImpl.failed_to_getprincipal = Membership service encountered an error
getting the principal for user "{0}".
+SessionServiceImpl.invalid_session = SessionServiceImpl.terminateSession: {0}
+SessionServiceImpl.expireSession = Expiring session {0}
+SessionServiceImpl.keepaliveFailed = Keepalive failed for session {0}
+SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database=Unexpected
error finding latest version of Virtual Database {0}
+SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database_{0}_of_version_{1}=Unexpected
error finding latest version of Virtual Database {0} of version {1}
+SessionServiceImpl.Membership_service_could_not_authenticate_user=Membership service
could not authenticate user "{0}"
+SessionServiceImpl.The_username_0_and/or_password_are_incorrect=The username
"{0}" and/or password and/or payload token could not be authenticated by any
membership domain.
+SessionServiceImpl.terminateSession = Admin [{0}] is terminating this session: {1}.
+
+
+LogonImpl.Invalid_use_of_credentials_and_token=Conflicting use of both client session
token and credentials.
+
+ServerWorkItem.Received_exception_processing_request=Unexpected exception for session
{0}
+ServerWorkItem.processing_error=Processing exception ''{0}'' for session
{1}. Exception type {2} throw from {3}. Enable detail logging to see the entire
stacktrace.
+ServerWorkItem.Component_Not_Found=Component not found: {0}
+
+SocketTransport.1=Bound to address {1} listening on port {2}
+SocketTransport.2=Problem starting server binding to address {0} and listening on port
{1}
Modified: trunk/engine/src/main/java/com/metamatrix/query/util/ErrorMessageKeys.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/util/ErrorMessageKeys.java 2009-07-06
21:17:43 UTC (rev 1095)
+++ trunk/engine/src/main/java/com/metamatrix/query/util/ErrorMessageKeys.java 2009-07-07
16:47:45 UTC (rev 1096)
@@ -31,7 +31,6 @@
*
* <p>Error messages for query project (015) to address
internationalization.</p>
*
- * @author <a href="mailto:jcunningham@metamatrix.com">Jeff
Cunningham</a>
*/
public class ErrorMessageKeys {