djencks 2005/05/16 20:29:26
Modified: modules/core/src/java/org/openejb/server/axis
WSContainer.java WSContainerGBean.java
Log:
GERONIMO-648 ejb web services security
Revision Changes Path
1.11 +12 -4
openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java
Index: WSContainer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- WSContainer.java 16 Apr 2005 01:16:40 -0000 1.10
+++ WSContainer.java 17 May 2005 00:29:26 -0000 1.11
@@ -65,7 +65,15 @@
location = null;
}
- public WSContainer(EJBContainer ejbContainer, URI location, URI wsdlURI,
SoapHandler soapHandler, ServiceInfo serviceInfo) throws Exception {
+ public WSContainer(EJBContainer ejbContainer,
+ URI location,
+ URI wsdlURI,
+ SoapHandler soapHandler,
+ ServiceInfo serviceInfo,
+ String securityRealmName,
+ String realmName,
+ String transportGuarantee,
+ String authMethod) throws Exception {
try {
this.soapHandler = soapHandler;
@@ -84,9 +92,9 @@
ClassLoader classLoader = ejbContainer.getClassLoader();
AxisWebServiceContainer axisContainer = new
AxisWebServiceContainer(location, wsdlURI, service, serviceInfo.getWsdlMap(),
classLoader);
if (soapHandler != null) {
- soapHandler.addWebService(location.getPath(), axisContainer);
+ soapHandler.addWebService(location.getPath(), axisContainer,
securityRealmName, realmName, transportGuarantee, authMethod, classLoader);
}
-
+
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
1.5 +18 -5
openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java
Index: WSContainerGBean.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WSContainerGBean.java 26 Mar 2005 03:44:54 -0000 1.4
+++ WSContainerGBean.java 17 May 2005 00:29:26 -0000 1.5
@@ -70,15 +70,23 @@
infoFactory.addReference("EJBContainer", EJBContainer.class);
infoFactory.addAttribute("location", URI.class, true);
infoFactory.addAttribute("wsdlURI", URI.class, true);
- infoFactory.addReference("WebServiceContainer", SoapHandler.class);
+ infoFactory.addAttribute("securityRealmName", String.class, true);
+ infoFactory.addAttribute("realmName", String.class, true);
+ infoFactory.addAttribute("transportGuarantee", String.class, true);
+ infoFactory.addAttribute("authMethod", String.class, true);
infoFactory.addAttribute("serviceInfo", ServiceInfo.class, true);
+ infoFactory.addReference("WebServiceContainer", SoapHandler.class);
infoFactory.setConstructor(new String[]{
"EJBContainer",
"location",
"wsdlURI",
"WebServiceContainer",
- "serviceInfo"
+ "serviceInfo",
+ "securityRealmName",
+ "realmName",
+ "transportGuarantee",
+ "authMethod"
});
GBEAN_INFO = infoFactory.getBeanInfo();
@@ -88,14 +96,15 @@
return GBEAN_INFO;
}
+ //TODO why is a test method in runtime code?
public static ObjectName addGBean(Kernel kernel, String name, ObjectName
ejbContainer, ObjectName listener, URI location, URI wsdlURI, ServiceInfo
serviceInfo) throws GBeanAlreadyExistsException, GBeanNotFoundException {
- GBeanData gbean = createGBean(name, ejbContainer, listener,
location, wsdlURI, serviceInfo);
+ GBeanData gbean = createGBean(name, ejbContainer, listener,
location, wsdlURI, serviceInfo, null, null, null, null);
kernel.loadGBean(gbean, WSContainer.class.getClassLoader());
kernel.startGBean(gbean.getName());
return gbean.getName();
}
- public static GBeanData createGBean(String name, ObjectName
ejbContainer, ObjectName listener, URI location, URI wsdlURI, ServiceInfo
serviceInfo) {
+ public static GBeanData createGBean(String name, ObjectName
ejbContainer, ObjectName listener, URI location, URI wsdlURI, ServiceInfo
serviceInfo, String securityRealmName, String realmName, String
transportGuarantee, String authMethod) {
assert ejbContainer != null : "EJBContainer objectname is null";
ObjectName gbeanName =
JMXUtil.getObjectName("openejb:type=WSContainer,name=" + name);
@@ -105,6 +114,10 @@
gbean.setAttribute("location", location);
gbean.setAttribute("wsdlURI", wsdlURI);
gbean.setAttribute("serviceInfo", serviceInfo);
+ gbean.setAttribute("securityRealmName", securityRealmName);
+ gbean.setAttribute("realmName", realmName);
+ gbean.setAttribute("transportGuarantee", transportGuarantee);
+ gbean.setAttribute("authMethod", authMethod);
gbean.setReferencePattern("WebServiceContainer", listener);