Search in sources :

Example 6 with MethodPermission

use of org.apache.openejb.jee.MethodPermission in project tomee by apache.

the class EjbJarInfoBuilder method initMethodPermissions.

private void initMethodPermissions(final EjbModule jar, final Map ejbds, final EjbJarInfo ejbJarInfo) {
    final List<MethodPermission> methodPermissions = jar.getEjbJar().getAssemblyDescriptor().getMethodPermission();
    for (final MethodPermission mp : methodPermissions) {
        final MethodPermissionInfo info = new MethodPermissionInfo();
        info.description = mp.getDescription();
        info.roleNames.addAll(mp.getRoleName());
        info.methods.addAll(getMethodInfos(mp.getMethod(), ejbds));
        info.unchecked = mp.getUnchecked();
        ejbJarInfo.methodPermissions.add(info);
    }
}
Also used : MethodPermission(org.apache.openejb.jee.MethodPermission) MethodPermissionInfo(org.apache.openejb.assembler.classic.MethodPermissionInfo)

Example 7 with MethodPermission

use of org.apache.openejb.jee.MethodPermission in project tomee by apache.

the class StatefulSecurityPermissionsTest method test.

public void test() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
    final Assembler assembler = new Assembler();
    final ConfigurationFactory config = new ConfigurationFactory();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    final SecurityServiceInfo securityServiceInfo = config.configureService(SecurityServiceInfo.class);
    securityServiceInfo.className = TestSecurityService.class.getName();
    assembler.createSecurityService(securityServiceInfo);
    final TestSecurityService securityService = (TestSecurityService) SystemInstance.get().getComponent(SecurityService.class);
    securityService.login("foo", "Jazz", "Rock", "Reggae", "HipHop");
    final EjbJar ejbJar = new EjbJar();
    ejbJar.addEnterpriseBean(new StatefulBean(Color.class));
    final List<MethodPermission> permissions = ejbJar.getAssemblyDescriptor().getMethodPermission();
    permissions.add(new MethodPermission("*", "Color", "*", "Foo"));
    permissions.add(new MethodPermission("*", "Color", "create").setUnchecked());
    permissions.add(new MethodPermission("*", "Color", "ejbCreate").setUnchecked());
    final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
    assembler.createApplication(ejbJarInfo);
    final InitialContext context = new InitialContext();
    {
        final ColorLocal color = (ColorLocal) context.lookup("ColorLocal");
        assertEquals("Jazz", color.color());
        try {
            color.color((Object) null);
        } catch (final EJBAccessException e) {
            assertEquals("Excluded", actual.get());
        }
        assertEquals("Rock", color.color((String) null));
        assertEquals("Unchecked", color.color((Boolean) null));
        assertEquals("Reggae", color.color((Integer) null));
    }
}
Also used : StatefulBean(org.apache.openejb.jee.StatefulBean) InitContextFactory(org.apache.openejb.core.ivm.naming.InitContextFactory) MethodPermission(org.apache.openejb.jee.MethodPermission) InitialContext(javax.naming.InitialContext) EJBAccessException(javax.ejb.EJBAccessException) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) SecurityService(org.apache.openejb.spi.SecurityService) AbstractSecurityService(org.apache.openejb.core.security.AbstractSecurityService) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) EJBObject(javax.ejb.EJBObject) EJBLocalObject(javax.ejb.EJBLocalObject) Assembler(org.apache.openejb.assembler.classic.Assembler) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo) EjbJar(org.apache.openejb.jee.EjbJar)

Example 8 with MethodPermission

use of org.apache.openejb.jee.MethodPermission in project tomee by apache.

the class AssemblyDescriptor$JAXB method _write.

public static final void _write(final XoXMLStreamWriter writer, final AssemblyDescriptor assemblyDescriptor, RuntimeContext context) throws Exception {
    if (assemblyDescriptor == null) {
        writer.writeXsiNil();
        return;
    }
    if (context == null) {
        context = new RuntimeContext();
    }
    final String prefix = writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee");
    if (AssemblyDescriptor.class != assemblyDescriptor.getClass()) {
        context.unexpectedSubclass(writer, assemblyDescriptor, AssemblyDescriptor.class);
        return;
    }
    context.beforeMarshal(assemblyDescriptor, LifecycleCallback.NONE);
    // ATTRIBUTE: id
    final String idRaw = assemblyDescriptor.id;
    if (idRaw != null) {
        String id = null;
        try {
            id = Adapters.collapsedStringAdapterAdapter.marshal(idRaw);
        } catch (final Exception e) {
            context.xmlAdapterError(assemblyDescriptor, "id", CollapsedStringAdapter.class, String.class, String.class, e);
        }
        writer.writeAttribute("", "", "id", id);
    }
    // ELEMENT: securityRole
    final List<SecurityRole> securityRole = assemblyDescriptor.securityRole;
    if (securityRole != null) {
        for (final SecurityRole securityRoleItem : securityRole) {
            if (securityRoleItem != null) {
                writer.writeStartElement(prefix, "security-role", "http://java.sun.com/xml/ns/javaee");
                writeSecurityRole(writer, securityRoleItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "securityRole");
            }
        }
    }
    // ELEMENT: methodPermission
    final List<MethodPermission> methodPermission = assemblyDescriptor.methodPermission;
    if (methodPermission != null) {
        for (final MethodPermission methodPermissionItem : methodPermission) {
            if (methodPermissionItem != null) {
                writer.writeStartElement(prefix, "method-permission", "http://java.sun.com/xml/ns/javaee");
                writeMethodPermission(writer, methodPermissionItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "methodPermission");
            }
        }
    }
    // ELEMENT: containerTransaction
    final List<ContainerTransaction> containerTransaction = assemblyDescriptor.containerTransaction;
    if (containerTransaction != null) {
        for (final ContainerTransaction containerTransactionItem : containerTransaction) {
            if (containerTransactionItem != null) {
                writer.writeStartElement(prefix, "container-transaction", "http://java.sun.com/xml/ns/javaee");
                writeContainerTransaction(writer, containerTransactionItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "containerTransaction");
            }
        }
    }
    // ELEMENT: containerConcurrency
    final List<ContainerConcurrency> containerConcurrency = assemblyDescriptor.containerConcurrency;
    if (containerConcurrency != null) {
        for (final ContainerConcurrency containerConcurrencyItem : containerConcurrency) {
            if (containerConcurrencyItem != null) {
                writer.writeStartElement(prefix, "container-concurrency", "http://java.sun.com/xml/ns/javaee");
                writeContainerConcurrency(writer, containerConcurrencyItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "containerConcurrency");
            }
        }
    }
    // ELEMENT: interceptorBinding
    final List<InterceptorBinding> interceptorBinding = assemblyDescriptor.interceptorBinding;
    if (interceptorBinding != null) {
        for (final InterceptorBinding interceptorBindingItem : interceptorBinding) {
            if (interceptorBindingItem != null) {
                writer.writeStartElement(prefix, "interceptor-binding", "http://java.sun.com/xml/ns/javaee");
                writeInterceptorBinding(writer, interceptorBindingItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "interceptorBinding");
            }
        }
    }
    // ELEMENT: messageDestination
    final List<MessageDestination> messageDestination = assemblyDescriptor.messageDestination;
    if (messageDestination != null) {
        for (final MessageDestination messageDestinationItem : messageDestination) {
            if (messageDestinationItem != null) {
                writer.writeStartElement(prefix, "message-destination", "http://java.sun.com/xml/ns/javaee");
                writeMessageDestination(writer, messageDestinationItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "messageDestination");
            }
        }
    }
    // ELEMENT: excludeList
    final ExcludeList excludeList = assemblyDescriptor.excludeList;
    if (excludeList != null) {
        writer.writeStartElement(prefix, "exclude-list", "http://java.sun.com/xml/ns/javaee");
        writeExcludeList(writer, excludeList, context);
        writer.writeEndElement();
    }
    // ELEMENT: applicationException
    final KeyedCollection<String, ApplicationException> applicationException = assemblyDescriptor.applicationException;
    if (applicationException != null) {
        for (final ApplicationException applicationExceptionItem : applicationException) {
            if (applicationExceptionItem != null) {
                writer.writeStartElement(prefix, "application-exception", "http://java.sun.com/xml/ns/javaee");
                writeApplicationException(writer, applicationExceptionItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(assemblyDescriptor, "applicationException");
            }
        }
    }
    context.afterMarshal(assemblyDescriptor, LifecycleCallback.NONE);
}
Also used : ExcludeList$JAXB.writeExcludeList(org.apache.openejb.jee.ExcludeList$JAXB.writeExcludeList) ExcludeList$JAXB.readExcludeList(org.apache.openejb.jee.ExcludeList$JAXB.readExcludeList) SecurityRole$JAXB.readSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.readSecurityRole) SecurityRole$JAXB.writeSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.writeSecurityRole) MessageDestination$JAXB.readMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.readMessageDestination) MessageDestination$JAXB.writeMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.writeMessageDestination) CollapsedStringAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter) ApplicationException$JAXB.readApplicationException(org.apache.openejb.jee.ApplicationException$JAXB.readApplicationException) ApplicationException$JAXB.writeApplicationException(org.apache.openejb.jee.ApplicationException$JAXB.writeApplicationException) MethodPermission$JAXB.readMethodPermission(org.apache.openejb.jee.MethodPermission$JAXB.readMethodPermission) MethodPermission$JAXB.writeMethodPermission(org.apache.openejb.jee.MethodPermission$JAXB.writeMethodPermission) InterceptorBinding$JAXB.writeInterceptorBinding(org.apache.openejb.jee.InterceptorBinding$JAXB.writeInterceptorBinding) InterceptorBinding$JAXB.readInterceptorBinding(org.apache.openejb.jee.InterceptorBinding$JAXB.readInterceptorBinding) ApplicationException$JAXB.readApplicationException(org.apache.openejb.jee.ApplicationException$JAXB.readApplicationException) ApplicationException$JAXB.writeApplicationException(org.apache.openejb.jee.ApplicationException$JAXB.writeApplicationException) ContainerConcurrency$JAXB.writeContainerConcurrency(org.apache.openejb.jee.ContainerConcurrency$JAXB.writeContainerConcurrency) ContainerConcurrency$JAXB.readContainerConcurrency(org.apache.openejb.jee.ContainerConcurrency$JAXB.readContainerConcurrency) ContainerTransaction$JAXB.writeContainerTransaction(org.apache.openejb.jee.ContainerTransaction$JAXB.writeContainerTransaction) ContainerTransaction$JAXB.readContainerTransaction(org.apache.openejb.jee.ContainerTransaction$JAXB.readContainerTransaction) RuntimeContext(org.metatype.sxc.jaxb.RuntimeContext)

Aggregations

MethodPermission (org.apache.openejb.jee.MethodPermission)6 EjbJar (org.apache.openejb.jee.EjbJar)4 Method (org.apache.openejb.jee.Method)4 AssemblyDescriptor (org.apache.openejb.jee.AssemblyDescriptor)3 ContainerTransaction (org.apache.openejb.jee.ContainerTransaction)3 EnterpriseBean (org.apache.openejb.jee.EnterpriseBean)3 InterceptorBinding (org.apache.openejb.jee.InterceptorBinding)3 ArrayList (java.util.ArrayList)2 ApplicationException$JAXB.readApplicationException (org.apache.openejb.jee.ApplicationException$JAXB.readApplicationException)2 ApplicationException$JAXB.writeApplicationException (org.apache.openejb.jee.ApplicationException$JAXB.writeApplicationException)2 ContainerConcurrency$JAXB.readContainerConcurrency (org.apache.openejb.jee.ContainerConcurrency$JAXB.readContainerConcurrency)2 ContainerConcurrency$JAXB.writeContainerConcurrency (org.apache.openejb.jee.ContainerConcurrency$JAXB.writeContainerConcurrency)2 ContainerTransaction$JAXB.readContainerTransaction (org.apache.openejb.jee.ContainerTransaction$JAXB.readContainerTransaction)2 ContainerTransaction$JAXB.writeContainerTransaction (org.apache.openejb.jee.ContainerTransaction$JAXB.writeContainerTransaction)2 ExcludeList$JAXB.readExcludeList (org.apache.openejb.jee.ExcludeList$JAXB.readExcludeList)2 ExcludeList$JAXB.writeExcludeList (org.apache.openejb.jee.ExcludeList$JAXB.writeExcludeList)2 Interceptor (org.apache.openejb.jee.Interceptor)2 InterceptorBinding$JAXB.readInterceptorBinding (org.apache.openejb.jee.InterceptorBinding$JAXB.readInterceptorBinding)2 InterceptorBinding$JAXB.writeInterceptorBinding (org.apache.openejb.jee.InterceptorBinding$JAXB.writeInterceptorBinding)2 MessageDestination$JAXB.readMessageDestination (org.apache.openejb.jee.MessageDestination$JAXB.readMessageDestination)2