Details
-
Bug
-
Resolution: Done
-
Blocker
-
7.1.0.Beta1
-
None
Description
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>