djencks 2004/03/10 11:21:17
Modified:
modules/connector/src/java/org/apache/geronimo/connector/deployment
AbstractRARConfigBuilder.java
RAR_1_5ConfigBuilder.java
modules/connector/src/java/org/apache/geronimo/connector/outbound/security
PasswordCredentialRealm.java
modules/connector/src/schema geronimo-connector_1_5.xsd
modules/connector/src/test/org/apache/geronimo/connector/deployment
RAR_1_5ConfigBuilderTest.java
modules/connector/src/test-data/connector_1_5
geronimo-ra.xml
modules/security/src/java/org/apache/geronimo/security/realm/providers
AbstractSecurityRealm.java
Log:
Deploy appropriate login module when requested
Revision Changes Path
1.9 +2 -2
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/AbstractRARConfigBuilder.java
Index: AbstractRARConfigBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/AbstractRARConfigBuilder.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- AbstractRARConfigBuilder.java 10 Mar 2004 09:58:31 -0000 1.8
+++ AbstractRARConfigBuilder.java 10 Mar 2004 19:21:17 -0000 1.9
@@ -67,7 +67,7 @@
public final static String BASE_RESOURCE_ADAPTER_NAME =
"geronimo.management:J2eeType=ResourceAdapter,name=";
protected final static String BASE_CONNECTION_MANAGER_FACTORY_NAME =
"geronimo.management:J2eeType=ConnectionManager,name=";
protected static final String BASE_REALM_BRIDGE_NAME =
"geronimo.security:service=RealmBridge,name=";
- private static final String BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME =
"geronimo.security:service=Realm,type=PasswordCredential,name=";
+ protected static final String BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME
= "geronimo.security:service=Realm,type=PasswordCredential,name=";
protected final Repository repository;
protected final Kernel kernel;
1.7 +9 -6
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilder.java
Index: RAR_1_5ConfigBuilder.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilder.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- RAR_1_5ConfigBuilder.java 10 Mar 2004 09:58:31 -0000 1.6
+++ RAR_1_5ConfigBuilder.java 10 Mar 2004 19:21:17 -0000 1.7
@@ -32,12 +32,15 @@
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
+import javax.resource.spi.security.PasswordCredential;
import org.apache.geronimo.common.propertyeditor.PropertyEditors;
import org.apache.geronimo.connector.AdminObjectWrapper;
import org.apache.geronimo.connector.ResourceAdapterWrapper;
import org.apache.geronimo.connector.outbound.ConnectionManagerDeployment;
import
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper;
+import
org.apache.geronimo.connector.outbound.security.PasswordCredentialLoginModule;
+import
org.apache.geronimo.connector.outbound.security.PasswordCredentialRealm;
import org.apache.geronimo.deployment.DeploymentContext;
import org.apache.geronimo.deployment.DeploymentException;
import org.apache.geronimo.deployment.util.UnclosableInputStream;
@@ -203,12 +206,12 @@
managedConnectionFactoryGBean.setReferencePatterns("ResourceAdapterWrapper",
Collections.singleton(resourceAdapterObjectName));
}
managedConnectionFactoryGBean.setReferencePatterns("ConnectionManagerFactory",
Collections.singleton(connectionManagerFactoryObjectName));
- /*
- //TODO also set up the login module
- if
(geronimoConnectionDefinition.getAuthentication().equals("BasicUserPassword")) {
-
managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener",
Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME
+ geronimoConnectionDefinition.getName())));
+ if (connectionfactoryInstance.getCredentialInterface()
!= null &&
PasswordCredential.class.getName().equals(connectionfactoryInstance.getCredentialInterface().getStringValue()))
{
+ GBeanMBean realmGBean = new
GBeanMBean(PasswordCredentialRealm.class.getName());
+ realmGBean.setAttribute("RealmName",
BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME +
connectionfactoryInstance.getName());
+
context.addGBean(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME
+ connectionfactoryInstance.getName()), realmGBean);
+
managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener",
Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME
+ connectionfactoryInstance.getName())));
}
- */
managedConnectionFactoryGBean.setReferencePatterns("Kernel",
Collections.singleton(Kernel.KERNEL));
managedConnectionFactoryGBean.setAttribute("SelfName",
managedConnectionFactoryObjectName);
} catch (Exception e) {
1.6 +6 -1
incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/security/PasswordCredentialRealm.java
Index: PasswordCredentialRealm.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/outbound/security/PasswordCredentialRealm.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PasswordCredentialRealm.java 10 Mar 2004 09:58:33 -0000 1.5
+++ PasswordCredentialRealm.java 10 Mar 2004 19:21:17 -0000 1.6
@@ -44,6 +44,10 @@
static final String REALM_INSTANCE =
"org.apache.connector.outbound.security.PasswordCredentialRealm";
+ public PasswordCredentialRealm(String realmName) {
+ super(realmName);
+ }
+
public Set getGroupPrincipals() throws GeronimoSecurityException {
return null;
}
@@ -89,6 +93,7 @@
static {
GBeanInfoFactory infoFactory = new
GBeanInfoFactory(PasswordCredentialRealm.class.getName(),
AbstractSecurityRealm.getGBeanInfo());
+ infoFactory.addInterface(ManagedConnectionFactoryListener.class);
GBEAN_INFO = infoFactory.getBeanInfo();
}
1.10 +8 -5
incubator-geronimo/modules/connector/src/schema/geronimo-connector_1_5.xsd
Index: geronimo-connector_1_5.xsd
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/schema/geronimo-connector_1_5.xsd,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- geronimo-connector_1_5.xsd 10 Mar 2004 09:58:33 -0000 1.9
+++ geronimo-connector_1_5.xsd 10 Mar 2004 19:21:17 -0000 1.10
@@ -228,6 +228,9 @@
<xsd:element name="global-jndi-name"
type="xsd:string"
minOccurs="0"/>
+ <xsd:element name="credential-interface"
+ type="ger:credential-interfaceType"
+ minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
@@ -284,11 +287,11 @@
</xsd:complexType>
<xsd:simpleType name="versionType">
- <xsd:restriction base="xsd:string">
- <xsd:whiteSpace value="collapse"/>
- <xsd:enumeration value="1.0"/>
- <xsd:enumeration value="1.5"/>
- </xsd:restriction>
+ <xsd:restriction base="xsd:string">
+ <xsd:whiteSpace value="collapse"/>
+ <xsd:enumeration value="1.0"/>
+ <xsd:enumeration value="1.5"/>
+ </xsd:restriction>
</xsd:simpleType>
<!-- **************************************************** -->
1.6 +2 -2
incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilderTest.java
Index: RAR_1_5ConfigBuilderTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/RAR_1_5ConfigBuilderTest.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RAR_1_5ConfigBuilderTest.java 10 Mar 2004 09:58:33 -0000 1.5
+++ RAR_1_5ConfigBuilderTest.java 10 Mar 2004 19:21:17 -0000 1.6
@@ -100,7 +100,7 @@
} finally {
kernel.shutdown();
}
- assertEquals(9, gbeans.size());
+ assertEquals(10, gbeans.size());
//we could check what the gbeans are...
}
1.11 +1 -0
incubator-geronimo/modules/connector/src/test-data/connector_1_5/geronimo-ra.xml
Index: geronimo-ra.xml
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/connector/src/test-data/connector_1_5/geronimo-ra.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- geronimo-ra.xml 10 Mar 2004 09:58:34 -0000 1.10
+++ geronimo-ra.xml 10 Mar 2004 19:21:17 -0000 1.11
@@ -41,6 +41,7 @@
<useSubject>true</useSubject>
</connectionmanager>
<global-jndi-name>connectionfactories/testcf</global-jndi-name>
+
<credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
</connectiondefinition-instance>
<connectiondefinition-instance>
<name>SecondTestOutboundConnectionFactory</name>
1.5 +2 -2
incubator-geronimo/modules/security/src/java/org/apache/geronimo/security/realm/providers/AbstractSecurityRealm.java
Index: AbstractSecurityRealm.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/security/src/java/org/apache/geronimo/security/realm/providers/AbstractSecurityRealm.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractSecurityRealm.java 10 Mar 2004 09:59:26 -0000 1.4
+++ AbstractSecurityRealm.java 10 Mar 2004 19:21:17 -0000 1.5
@@ -86,7 +86,7 @@
infoFactory.addOperation(new GOperationInfo("getUserPrincipals", new
String[]{RE.class.getName()}));
infoFactory.addOperation(new GOperationInfo("refresh"));
infoFactory.addOperation(new
GOperationInfo("getAppConfigurationEntry"));
- infoFactory.setConstructor(new GConstructorInfo(new
String[]{"realmName"}, new Class[]{String.class}));
+ infoFactory.setConstructor(new GConstructorInfo(new
String[]{"RealmName"}, new Class[]{String.class}));
GBEAN_INFO = infoFactory.getBeanInfo();
}