title: @PreAuthorization annotation with custom method doesn't work
body: <p>I'm trying to call a custom method using Spring @PreAuthorize at the method level in the service layer, but my custom method is not being called. My code:</p>
  
  <p>spring-application-context.xml:</p>
  
  <pre><code>&lt;context:component-scan base-package="com.dice" /&gt;
  &lt;sec:global-method-security pre-post-annotations="enabled"/&gt;
  </code></pre>
  
  <p>Component definition:</p>
  
  <pre><code>@Component(value="authorizationService")
  public class AuthorizationService implements AuthorizationServiceInt {
      public boolean test(String key) {
          logger.debug("AUTHORIZATION CALLED: " + key);
          return false;
      }
  }
  </code></pre>
  
  <p>Controller that calls the util class:</p>
  
  <pre><code>@InjectParam
  CustomerUtil customerUtil;
  
  @GET
  @Path("/{customerId}/")
  @Produces(MediaType.APPLICATION_JSON)
  public Response getCustomerInfo(@PathParam("customerId") Integer customerId,
      @DefaultValue("") @QueryParam("fields") String partialResponseFields) {
  
      logger.debug("getCustomerInfo called: id: " + customerId + ", uriInfo = " + uriInfo.getPath());
      try {
          return buildOKResourceResponse(new CustomerActionResource(customerUtil.getCustomerInfo(uriInfo, customerId)),partialResponseFields);
  </code></pre>
  
  <p>Usage of the component:</p>
  
  <pre><code>@InjectParam
  AuthorizationService svc;
  
  @PreAuthorize("@authorizationService.test('special')")
  public Customer getCustomerInfo(UriInfo uriInfo, Integer id) {
      logger.debug("svc: " + svc.hasPermission("x"));
      return populateCustomerInfo(uriInfo, PstUserModelServiceUtil.getPstUserModelByPstUserId(id));
  }
  </code></pre>
  
  <p>I included the InjectParam just to make sure that the AuthorizationService class was being recognized by Spring. And sure enough, the 'AUTHORIZATION CALLED' debug statement appears when I call via the injected class, but does not appear when called via the @PreAuthorization call.</p>
  
  <p>My spring jars:</p>
  
  <pre><code>spring-aop-3.2.0.RELEASE.jar
  spring-beans-3.2.0.RELEASE.jar
  spring-context-3.2.0.RELEASE.jar
  spring-context-support-3.2.2.RELEASE.jar
  spring-core-3.2.0.RELEASE.jar
  spring-data-commons-1.5.0.RELEASE.jar
  spring-data-solr-1.0.0.RELEASE.jar
  spring-expression-3.2.0.RELEASE.jar
  spring-jdbc-3.2.0.RELEASE.jar
  spring-orm-3.2.0.RELEASE.jar
  spring-security-acl-3.1.4.RELEASE.jar
  spring-security-config-3.1.4.RELEASE.jar
  spring-security-core-3.1.4.RELEASE.jar
  spring-security-oauth2-1.1.0.BUILD-SNAPSHOT.jar
  spring-security-taglibs-3.1.4.RELEASE.jar
  spring-security-web-3.1.4.RELEASE.jar
  spring-tx-3.2.0.RELEASE.jar
  spring-web-3.2.2.RELEASE.jar
  spring-webmvc-3.2.2.RELEASE.jar
  </code></pre>
  
  <p>What am I doing wrong? I have interfaces on both the component class and the class using the component as I read that with aop, the fact that Spring decorates the impl class that an interface is needed for spring to see the underlying implementation.</p>