本帖最后由 daocha 于 2012-08-09 12:07:40 编辑

解决方案 »

  1.   

    An Authentication object was not found in the SecurityContext。
    没有在Security上下文中找到认证信息!在spring security进行处理前,会经过一条过虑链处理(一系列filter),每个过滤器会进行一些必要的处理,其中就有一个将认证信息(当前用户认证信息)放入到SecurityContext(应该是个线程变量)中,后续才可以用这些信息进行鉴权处理(如lz描述的处理@PreAuthorize声明的方法)。按照lz的说法,由 @Scheduled 进行一些定期的操作,这样是不会进过虑链处理,当然不会有Authentication,所以出错!
    所以你应该考虑在由@Scheduled触发的线程中将Authentication放入到SecurityContext中!
      

  2.   


    虽然已经自行解决,但是思路与你的是一致的,人工模拟了一下authentication,用一个保留用户名和密码登录了