-
Bug
-
Resolution: Done
-
Critical
-
7.1.2.Final (EAP)
-
None
It seems, there is a problem with DeploymentUnitProcessor ordering in AS, which causes JACC permissions are not created for EJBs. The JaccEjbDeploymentProcessor (uses JACC permissions) runs before the EEModuleConfigurationProcessor (creates JACC permissions - calling EjbJaccConfigurator.configure()).
Both processors are registered to INSTALL phase:
./ejb3/src/main/java/org/jboss/as/ejb3/subsystem/EJB3SubsystemAdd.java:207: processorTarget.addDeploymentProcessor(EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EJB_JACC_PROCESSING, new JaccEjbDeploymentProcessor());
./ee/src/main/java/org/jboss/as/ee/subsystem/EeSubsystemAdd.java:181: processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EE_MODULE_CONFIG, new EEModuleConfigurationProcessor());
and stacktraces with usage:
Thread [MSC service thread 1-1] (Suspended (breakpoint at line 44 in EjbSecurityDeployer))
EjbSecurityDeployer.getMetaDataType() line: 44
EjbSecurityDeployer(AbstractSecurityDeployer<T>).deploy(DeploymentUnit) line: 38
JaccEjbDeploymentProcessor.deploy(DeploymentPhaseContext) line: 54
DeploymentUnitPhaseService<T>.start(StartContext) line: 116
ServiceControllerImpl$StartTask.startService(Service<? extends S>, StartContext) line: 1811
ServiceControllerImpl$StartTask.run() line: 1746
ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
ThreadPoolExecutor$Worker.run() line: 908
ServiceContainerImpl$ServiceThread(Thread).run() line: 662
Thread [MSC service thread 1-1] (Suspended (breakpoint at line 40 in EjbJaccConfigurator))
EjbJaccConfigurator.configure(DeploymentPhaseContext, ComponentDescription, ComponentConfiguration) line: 40
EEModuleConfigurationProcessor.deploy(DeploymentPhaseContext) line: 83
DeploymentUnitPhaseService<T>.start(StartContext) line: 116
ServiceControllerImpl$StartTask.startService(Service<? extends S>, StartContext) line: 1811
ServiceControllerImpl$StartTask.run() line: 1746
ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
ThreadPoolExecutor$Worker.run() line: 908
ServiceContainerImpl$ServiceThread(Thread).run() line: 662