[jboss-jira] [JBoss JIRA] (AS7-2809) security-domain in jboss-ejb3.xml does not work with service endpoint.

Carlo de Wolf (Updated) (JIRA) jira-events at lists.jboss.org
Wed Nov 30 10:16:42 EST 2011


     [ https://issues.jboss.org/browse/AS7-2809?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carlo de Wolf updated AS7-2809:
-------------------------------

    Git Pull Request: https://github.com/wolfc/jboss-as/tree/AS7-2809  (was: https://github.com/wolfc/jboss-as/tree/AS7-2809)
         Description: 
The security-domain in jboss-ejb3.xml doesn't work with ejb2x webservice endpoint and throws following exception :
{noformat}
Caused by: java.lang.RuntimeException: JBAS014497: Method named remove with params [interface javax.ejb.Handle] not found on component class class com.sun.ts.tests.webservices.sec.ejb.certificate.HelloCertificateBean
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.findComponentMethod(EJBMethodSecurityMetaData.java:223)
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.isAccessDenied(EJBMethodSecurityMetaData.java:114)
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.<init>(EJBMethodSecurityMetaData.java:72)
    at org.jboss.as.ejb3.security.EJBSecurityViewConfigurator.configure(EJBSecurityViewConfigurator.java:76)
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:917)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    ... 6 more 
{noformat}

{code:xml|title=jboss-ejb3.xml}
<jboss:jboss>
  <jboss:enterprise-beans>
    <jboss:ejb>
      <ejb-name xmlns="http://java.sun.com/xml/ns/javaee">SecEjbHello</ejb-name>
      <jboss:destination-jndi-name>SecEjbCertificate</jboss:destination-jndi-name>
    </jboss:ejb>
  </jboss:enterprise-beans>
  <assembly-descriptor xmlns="http://java.sun.com/xml/ns/javaee">
    <security:security xmlns:security="urn:security">
      <security:security-domain>cert</security:security-domain>
      <ejb-name>SecEjbHello</ejb-name>
    </security:security>
  </assembly-descriptor>
</jboss:jboss>
{code}

{code:xml|title=ejb-jar.xml}
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="2.1"
         xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">

  <display-name>SecEjbHello</display-name>
  <enterprise-beans>
    <session>
      <display-name>SecEjbHello</display-name>
      <ejb-name>SecEjbHello</ejb-name>
      <home>org.jboss.test.HelloHome</home>
      <remote>org.jboss.test.HelloRemote</remote>
      <service-endpoint>org.jboss.test.HelloInterface</service-endpoint>
      <ejb-class>org.jboss.test.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Bean</transaction-type>
      <security-identity>
        <description></description>
        <use-caller-identity></use-caller-identity>
      </security-identity>
    </session>
  </enterprise-beans>
</ejb-jar>
{code}

{code:xml|title=jboss-webservices.xml}
<?xml version="1.0" encoding="utf-8"?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee">
  <port-component>
    <ejb-name>SecEjbHello</ejb-name>
    <port-component-name>HelloPC</port-component-name>
    <port-component-uri>Hello/ejb</port-component-uri>
    <auth-method>CLIENT-CERT</auth-method>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </port-component>
  <webservice-description>
    <webservice-description-name>Hello</webservice-description-name>
    <wsdl-publish-location>file:/tmp/hello.wsdl</wsdl-publish-location>
  </webservice-description>
</webservices>
{code}

  was:
The security-domain in jboss-ejb3.xml doesn't work with ejb2x webservice endpoint and throws following exception :
Caused by: java.lang.RuntimeException: JBAS014497: Method named remove with params [interface javax.ejb.Handle] not found on component class class com.sun.ts.tests.webservices.sec.ejb.certificate.HelloCertificateBean
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.findComponentMethod(EJBMethodSecurityMetaData.java:223)
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.isAccessDenied(EJBMethodSecurityMetaData.java:114)
    at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.<init>(EJBMethodSecurityMetaData.java:72)
    at org.jboss.as.ejb3.security.EJBSecurityViewConfigurator.configure(EJBSecurityViewConfigurator.java:76)
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:917)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    ... 6 more 


---jboss-ejb3.xml--
<jboss:jboss>
<jboss:enterprise-beans>
<jboss:ejb>
<ejb-name xmlns="http://java.sun.com/xml/ns/javaee">SecEjbHello</ejb-name>
<jboss:destination-jndi-name>SecEjbCertificate</jboss:destination-jndi-name>
</jboss:ejb>
</jboss:enterprise-beans>
<assembly-descriptor xmlns="http://java.sun.com/xml/ns/javaee">
<security:security xmlns:security="urn:security">
<security:security-domain>cert</security:security-domain>
<ejb-name>SecEjbHello</ejb-name>
</security:security>
</assembly-descriptor>
</jboss:jboss>

----ejb-jar.xml----
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="2.1"
         xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">

  <display-name>SecEjbHello</display-name>
  <enterprise-beans>
    <session>
      <display-name>SecEjbHello</display-name>
      <ejb-name>SecEjbHello</ejb-name>
      <home>org.jboss.test.HelloHome</home>
      <remote>org.jboss.test.HelloRemote</remote>
      <service-endpoint>org.jboss.test.HelloInterface</service-endpoint>
      <ejb-class>org.jboss.test.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Bean</transaction-type>
      <security-identity>
        <description></description>
        <use-caller-identity></use-caller-identity>
      </security-identity>
    </session>
  </enterprise-beans>
</ejb-jar>


---jboss-webservices.xml--

<?xml version="1.0" encoding="utf-8"?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee">
  <port-component>
    <ejb-name>SecEjbHello</ejb-name>
    <port-component-name>HelloPC</port-component-name>
    <port-component-uri>Hello/ejb</port-component-uri>
    <auth-method>CLIENT-CERT</auth-method>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </port-component>
  <webservice-description>
    <webservice-description-name>Hello</webservice-description-name>
    <wsdl-publish-location>file:/tmp/hello.wsdl</wsdl-publish-location>
  </webservice-description>
</webservices>


    
> security-domain in jboss-ejb3.xml does not work with service endpoint. 
> -----------------------------------------------------------------------
>
>                 Key: AS7-2809
>                 URL: https://issues.jboss.org/browse/AS7-2809
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 7.1.0.Beta1
>            Reporter: Jim Ma
>            Assignee: Carlo de Wolf
>             Fix For: 7.1.0.Final
>
>
> The security-domain in jboss-ejb3.xml doesn't work with ejb2x webservice endpoint and throws following exception :
> {noformat}
> Caused by: java.lang.RuntimeException: JBAS014497: Method named remove with params [interface javax.ejb.Handle] not found on component class class com.sun.ts.tests.webservices.sec.ejb.certificate.HelloCertificateBean
>     at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.findComponentMethod(EJBMethodSecurityMetaData.java:223)
>     at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.isAccessDenied(EJBMethodSecurityMetaData.java:114)
>     at org.jboss.as.ejb3.security.EJBMethodSecurityMetaData.<init>(EJBMethodSecurityMetaData.java:72)
>     at org.jboss.as.ejb3.security.EJBSecurityViewConfigurator.configure(EJBSecurityViewConfigurator.java:76)
>     at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:917)
>     at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
>     ... 6 more 
> {noformat}
> {code:xml|title=jboss-ejb3.xml}
> <jboss:jboss>
>   <jboss:enterprise-beans>
>     <jboss:ejb>
>       <ejb-name xmlns="http://java.sun.com/xml/ns/javaee">SecEjbHello</ejb-name>
>       <jboss:destination-jndi-name>SecEjbCertificate</jboss:destination-jndi-name>
>     </jboss:ejb>
>   </jboss:enterprise-beans>
>   <assembly-descriptor xmlns="http://java.sun.com/xml/ns/javaee">
>     <security:security xmlns:security="urn:security">
>       <security:security-domain>cert</security:security-domain>
>       <ejb-name>SecEjbHello</ejb-name>
>     </security:security>
>   </assembly-descriptor>
> </jboss:jboss>
> {code}
> {code:xml|title=ejb-jar.xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <ejb-jar version="2.1"
>          xmlns="http://java.sun.com/xml/ns/j2ee"
> 	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
>   <display-name>SecEjbHello</display-name>
>   <enterprise-beans>
>     <session>
>       <display-name>SecEjbHello</display-name>
>       <ejb-name>SecEjbHello</ejb-name>
>       <home>org.jboss.test.HelloHome</home>
>       <remote>org.jboss.test.HelloRemote</remote>
>       <service-endpoint>org.jboss.test.HelloInterface</service-endpoint>
>       <ejb-class>org.jboss.test.HelloBean</ejb-class>
>       <session-type>Stateless</session-type>
>       <transaction-type>Bean</transaction-type>
>       <security-identity>
>         <description></description>
>         <use-caller-identity></use-caller-identity>
>       </security-identity>
>     </session>
>   </enterprise-beans>
> </ejb-jar>
> {code}
> {code:xml|title=jboss-webservices.xml}
> <?xml version="1.0" encoding="utf-8"?>
> <webservices xmlns="http://www.jboss.com/xml/ns/javaee">
>   <port-component>
>     <ejb-name>SecEjbHello</ejb-name>
>     <port-component-name>HelloPC</port-component-name>
>     <port-component-uri>Hello/ejb</port-component-uri>
>     <auth-method>CLIENT-CERT</auth-method>
>     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
>   </port-component>
>   <webservice-description>
>     <webservice-description-name>Hello</webservice-description-name>
>     <wsdl-publish-location>file:/tmp/hello.wsdl</wsdl-publish-location>
>   </webservice-description>
> </webservices>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list