/** * This method is for processing security annotation associated to ejb. * Dervied class call this method may like to override * * protected void processEjbMethodSecurity(Annotation authAnnotation, * MethodDescriptor md, EjbDescriptor ejbDesc) */ @Override public void postProcessAnnotation(AnnotationInfo ainfo, EjbContext ejbContext) throws AnnotationProcessorException { EjbDescriptor ejbDesc = ejbContext.getDescriptor(); Annotation authAnnotation = ainfo.getAnnotation(); if (!ejbContext.isInherited() && (ejbDesc.getMethodPermissionsFromDD() == null || ejbDesc.getMethodPermissionsFromDD().size() == 0)) { for (MethodDescriptor md : getMethodAllDescriptors(ejbDesc)) { processEjbMethodSecurity(authAnnotation, md, ejbDesc); } } else { Class classAn = (Class)ainfo.getAnnotatedElement(); for (Object next : ejbDesc.getSecurityBusinessMethodDescriptors()) { MethodDescriptor md = (MethodDescriptor)next; // override by existing info if (classAn.equals(ejbContext.getDeclaringClass(md)) && !hasMethodPermissionsFromDD(md, ejbDesc)) { processEjbMethodSecurity(authAnnotation, md, ejbDesc); } } } }
ejbDesc.getMethodPermissionsFromDD().size() == 0)) { for (MethodDescriptor md : getMethodAllDescriptors(ejbDesc)) { processEjbMethodSecurity(authAnnotation, md, ejbDesc); processEjbMethodSecurity(authAnnotation, md, ejbDesc);
Method m = md.getMethod(ejbDesc); if (TypeUtil.sameMethodSignature(m, annMethod)) { processEjbMethodSecurity(authAnnotation, md, ejbDesc);
Method m = md.getMethod(ejbDesc); if (TypeUtil.sameMethodSignature(m, annMethod)) { processEjbMethodSecurity(authAnnotation, md, ejbDesc);