Index: webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm/SaveJNDIRealmAction.java
===================================================================
--- webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm/SaveJNDIRealmAction.java (revision 345868)
+++ webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm/SaveJNDIRealmAction.java (working copy)
@@ -65,6 +65,9 @@
*/
private String createStandardRealmTypes[] =
{ "java.lang.String", // parent
+ "java.lang.String", //Connection URL
+ "java.lang.String", //Connection name
+ "java.lang.String", //Connection password
};
@@ -164,8 +167,11 @@
TomcatTreeBuilder.getMBeanFactory();
// Create a new StandardRealm object
- values = new String[1];
+ values = new String[4];
values[0] = parent;
+ values[1] = rform.getConnectionURL();
+ values[2] = rform.getConnectionName();
+ values[3] = rform.getConnectionPassword();
operation = "createJNDIRealm";
rObjectName = (String)
mBServer.invoke(fname, operation,
Index: catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java
===================================================================
--- catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java (revision 345868)
+++ catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java (working copy)
@@ -42,6 +42,7 @@
import org.apache.catalina.realm.DataSourceRealm;
import org.apache.catalina.realm.JDBCRealm;
import org.apache.catalina.realm.JNDIRealm;
+import org.apache.catalina.realm.JAASRealm;
import org.apache.catalina.realm.MemoryRealm;
import org.apache.catalina.realm.UserDatabaseRealm;
import org.apache.catalina.session.StandardManager;
@@ -404,12 +405,52 @@
*
* @exception Exception if an MBean cannot be created or registered
*/
- public String createJNDIRealm(String parent)
+ public String createJNDIRealm(String parent,String connectionURL,String connectionName,String connectionPassword)
throws Exception {
// Create a new JNDIRealm instance
JNDIRealm realm = new JNDIRealm();
+ realm.setConnectionURL(connectionURL);
+ realm.setConnectionName(connectionName);
+ realm.setConnectionPassword(connectionPassword);
+ // Add the new instance to its parent component
+ ObjectName pname = new ObjectName(parent);
+ ContainerBase containerBase = getParentContainerFromParent(pname);
+ // Add the new instance to its parent component
+ containerBase.setRealm(realm);
+ // Return the corresponding MBean name
+ ObjectName oname = realm.getObjectName();
+ if (oname != null) {
+ return (oname.toString());
+ } else {
+ return null;
+ }
+
+
+ }
+
+ /**
+ * Create a new JAAS Realm.
+ *
+ * @param parent MBean Name of the associated parent component
+ *
+ * @exception Exception if an MBean cannot be created or registered
+ */
+ public String createJAASRealm(String parent,String appName,String userClassNames,String roleClassNames,String useContextClassLoader)
+ throws Exception {
+
+ // Create a new JAASRealm instance
+ JAASRealm realm = new JAASRealm();
+ realm.setAppName(appName);
+ realm.setUserClassNames(userClassNames);
+ realm.setRoleClassNames(roleClassNames);
+ if("true".equals(useContextClassLoader)||"TRUE".equals(useContextClassLoader)){
+ realm.setUseContextClassLoader(true);
+ }
+ else{
+ realm.setUseContextClassLoader(false);
+ }
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
@@ -427,7 +468,6 @@
}
-
/**
* Create a new Memory Realm.
*
Index: catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml
===================================================================
--- catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml (revision 345868)
+++ catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml (working copy)
@@ -119,8 +119,37 @@
returnType="java.lang.String">
+ type="java.lang.String"/>
+
+
+
+
+
+
+
+
+
+