use of org.jboss.as.ejb3.security.metadata.EJBBoundSecurityMetaData in project wildfly by wildfly.
the class EJBBoundSecurityMetaDataParser method parse.
@Override
public EJBBoundSecurityMetaData parse(XMLStreamReader reader, final PropertyReplacer propertyReplacer) throws XMLStreamException {
EJBBoundSecurityMetaData metaData = new EJBBoundSecurityMetaData();
processElements(metaData, reader, propertyReplacer);
return metaData;
}
use of org.jboss.as.ejb3.security.metadata.EJBBoundSecurityMetaData in project wildfly by wildfly.
the class EJBBoundSecurityMetaDataParser11 method parse.
@Override
public EJBBoundSecurityMetaData parse(XMLStreamReader reader, final PropertyReplacer propertyReplacer) throws XMLStreamException {
EJBBoundSecurityMetaData metaData = new EJBBoundSecurityMetaData();
processElements(metaData, reader, propertyReplacer);
return metaData;
}
use of org.jboss.as.ejb3.security.metadata.EJBBoundSecurityMetaData in project wildfly by wildfly.
the class MissingMethodPermissionsDenyAccessMergingProcessor method handleDeploymentDescriptor.
@Override
protected void handleDeploymentDescriptor(DeploymentUnit deploymentUnit, DeploymentReflectionIndex deploymentReflectionIndex, Class<?> componentClass, EJBComponentDescription description) throws DeploymentUnitProcessingException {
Boolean missingMethodPermissionsDenyAccess = null;
Boolean missingMethodPermissionsDenyAccessApplicableForAllBeans = null;
final EjbJarMetaData ejbJarMetaData = deploymentUnit.getAttachment(EjbDeploymentAttachmentKeys.EJB_JAR_METADATA);
if (ejbJarMetaData != null) {
final AssemblyDescriptorMetaData assemblyMetadata = ejbJarMetaData.getAssemblyDescriptor();
if (assemblyMetadata != null) {
final List<EJBBoundSecurityMetaData> securityMetaDatas = assemblyMetadata.getAny(EJBBoundSecurityMetaData.class);
if (securityMetaDatas != null) {
for (final EJBBoundSecurityMetaData securityMetaData : securityMetaDatas) {
if (securityMetaData.getEjbName().equals(description.getComponentName())) {
missingMethodPermissionsDenyAccess = securityMetaData.getMissingMethodPermissionsDenyAccess();
break;
}
// check missing-method-permissions-excluded-mode that's applicable for all EJBs.
if (securityMetaData.getEjbName().equals("*")) {
missingMethodPermissionsDenyAccessApplicableForAllBeans = securityMetaData.getMissingMethodPermissionsDenyAccess();
continue;
}
}
}
}
}
if (missingMethodPermissionsDenyAccess != null) {
description.setMissingMethodPermissionsDenyAccess(missingMethodPermissionsDenyAccess);
} else if (missingMethodPermissionsDenyAccessApplicableForAllBeans != null) {
description.setMissingMethodPermissionsDenyAccess(missingMethodPermissionsDenyAccessApplicableForAllBeans);
} else {
description.setMissingMethodPermissionsDenyAccess(denyAccessByDefault);
}
}
use of org.jboss.as.ejb3.security.metadata.EJBBoundSecurityMetaData in project wildfly by wildfly.
the class SecurityDomainMergingProcessor method handleDeploymentDescriptor.
@Override
protected void handleDeploymentDescriptor(final DeploymentUnit deploymentUnit, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final EJBComponentDescription description) throws DeploymentUnitProcessingException {
String securityDomain = getJBossAppSecurityDomain(deploymentUnit);
String globalSecurityDomain = null;
final EjbJarMetaData ejbJarMetaData = deploymentUnit.getAttachment(EjbDeploymentAttachmentKeys.EJB_JAR_METADATA);
if (ejbJarMetaData != null) {
final AssemblyDescriptorMetaData assemblyMetadata = ejbJarMetaData.getAssemblyDescriptor();
if (assemblyMetadata != null) {
final List<EJBBoundSecurityMetaData> securityMetaDatas = assemblyMetadata.getAny(EJBBoundSecurityMetaData.class);
if (securityMetaDatas != null) {
for (final EJBBoundSecurityMetaData securityMetaData : securityMetaDatas) {
if (securityMetaData.getEjbName().equals(description.getComponentName())) {
securityDomain = securityMetaData.getSecurityDomain();
break;
}
// check global security domain
if (securityMetaData.getEjbName().equals("*")) {
globalSecurityDomain = securityMetaData.getSecurityDomain();
continue;
}
}
}
}
}
if (securityDomain != null)
description.setDefinedSecurityDomain(securityDomain);
else if (globalSecurityDomain != null)
description.setDefinedSecurityDomain(globalSecurityDomain);
}
use of org.jboss.as.ejb3.security.metadata.EJBBoundSecurityMetaData in project wildfly by wildfly.
the class RunAsMergingProcessor method handleDeploymentDescriptor.
@Override
protected void handleDeploymentDescriptor(final DeploymentUnit deploymentUnit, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final EJBComponentDescription componentConfiguration) throws DeploymentUnitProcessingException {
if (componentConfiguration.getDescriptorData() != null) {
final SecurityIdentityMetaData identity = componentConfiguration.getDescriptorData().getSecurityIdentity();
if (identity != null) {
final RunAsMetaData runAs = identity.getRunAs();
if (runAs != null) {
final String role = runAs.getRoleName();
if (role != null && !role.trim().isEmpty()) {
componentConfiguration.setRunAs(role.trim());
}
}
}
}
if (componentConfiguration.getRunAs() != null) {
String principal = null;
String globalRunAsPrincipal = null;
EjbJarMetaData jbossMetaData = deploymentUnit.getAttachment(EjbDeploymentAttachmentKeys.EJB_JAR_METADATA);
if (jbossMetaData != null && jbossMetaData.getAssemblyDescriptor() != null) {
List<EJBBoundSecurityMetaData> securityMetaDatas = jbossMetaData.getAssemblyDescriptor().getAny(EJBBoundSecurityMetaData.class);
if (securityMetaDatas != null) {
for (EJBBoundSecurityMetaData securityMetaData : securityMetaDatas) {
if (securityMetaData.getEjbName().equals(componentConfiguration.getComponentName())) {
principal = securityMetaData.getRunAsPrincipal();
break;
}
// check global run-as principal
if (securityMetaData.getEjbName().equals("*")) {
globalRunAsPrincipal = securityMetaData.getRunAsPrincipal();
continue;
}
}
}
if (principal != null)
componentConfiguration.setRunAsPrincipal(principal);
else if (globalRunAsPrincipal != null)
componentConfiguration.setRunAsPrincipal(globalRunAsPrincipal);
else {
// we only set the run-as-principal to default, if it's not already set (via annotation) on the component
if (componentConfiguration.getRunAsPrincipal() == null) {
componentConfiguration.setRunAsPrincipal(DEFAULT_RUN_AS_PRINCIPAL);
}
}
}
}
}
Aggregations