[jboss-svn-commits] JBL Code SVN: r30746 - labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP08_JBTM-666/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Dec 17 20:21:21 EST 2009
Author: jbertram at redhat.com
Date: 2009-12-17 20:21:21 -0500 (Thu, 17 Dec 2009)
New Revision: 30746
Modified:
labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP08_JBTM-666/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/AppServerJDBCXARecovery.java
Log:
JBPAPP-3289
Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP08_JBTM-666/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/AppServerJDBCXARecovery.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP08_JBTM-666/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/AppServerJDBCXARecovery.java 2009-12-18 01:09:34 UTC (rev 30745)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_SP5_CP08_JBTM-666/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/AppServerJDBCXARecovery.java 2009-12-18 01:21:21 UTC (rev 30746)
@@ -211,9 +211,18 @@
{
ObjectName _objectName = new ObjectName("jboss.security:service=XMLLoginConfig");
String config = (String)server.invoke(_objectName, "displayAppConfig", new Object[] {securityDomainName}, new String[] {"java.lang.String"});
+ String loginModuleClass = getValueForLoginModuleClass(config);
_dbUsername = getValueForKey(config, _USERNAME);
String _encryptedPassword = getValueForKey(config, _PASSWORD);
- _dbPassword = new String (decode(_encryptedPassword));
+ if (loginModuleClass.trim().equals("org.jboss.resource.security.SecureIdentityLoginModule"))
+ {
+ _dbPassword = new String (decode(_encryptedPassword));
+ }
+ else if (loginModuleClass.trim().equals("org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"))
+ {
+ String jaasSecurityDomain = getValueForKey(config, "jaasSecurityDomain");
+ _dbPassword = new String (decodePBE(server, _encryptedPassword, jaasSecurityDomain));
+ }
_encrypted = true;
}
@@ -439,6 +448,17 @@
return "";
}
+ private String getValueForLoginModuleClass(String config)
+ {
+ Pattern usernamePattern = Pattern.compile("(" + _MODULE + ":)(.*)");
+ Matcher m = usernamePattern.matcher(config);
+ if(m.find())
+ {
+ return m.group(2);
+ }
+ return "";
+ }
+
private static String decode(String secret) throws NoSuchPaddingException, NoSuchAlgorithmException,
InvalidKeyException, BadPaddingException, IllegalBlockSizeException
{
@@ -454,6 +474,13 @@
return new String(decode);
}
+ private static String decodePBE(MBeanServerConnection server, String password, String jaasSecurityDomain) throws Exception
+ {
+ byte[] secret = (byte[]) server.invoke(new ObjectName(jaasSecurityDomain), "decode64", new Object[] {password}, new String[] {"java.lang.String"});
+ return new String(secret, "UTF-8");
+ }
+
+
private boolean _supportsIsValidMethod;
private XAConnection _connection;
private XADataSource _dataSource;
@@ -470,6 +497,7 @@
private final String _JNDINAME = "jndiname";
private final String _USERNAME = "username";
private final String _PASSWORD = "password";
+ private final String _MODULE = "LoginModule Class";
private final String _DELIMITER = ",";
private Logger log = org.jboss.logging.Logger.getLogger(AppServerJDBCXARecovery.class);
More information about the jboss-svn-commits
mailing list