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);
   
  
  
  

Reply via email to