Порядок Spring @Transactional и Spring Security @PreAuthorize

Таким образом, у меня получается что-то вроде следующего:

public interface  MyService {

    @PreAuthorize("hasPermission(T(Name).OBJ, T(Action).GET)")
    MyObj getObj(String id);
}

@Service
public class MyServiceImpl implements MyService {

    @Override
    @Transactional
    public MyObj getObj(String id){

        return dao.get(id);
    }
}

@Controller
public class MyController {

    @Resource(name="myServiceImpl")
    private MyService service;

    public MyObj getObj(String id){

       return service.getObj(id);
    }
}

Когда вызывается метод getObj(id), сначала все заворачивается в транзакцию, затем проверяется авторизация. Можно ли сохранить эту конфигурацию и заставить Spring сначала проверить авторизацию, а затем создать транзакцию, если пользователь авторизован?

Я потратил много времени на поиск ответа и ничего не смог найти.

13
задан Tomasz Nurkiewicz 13 January 2012 в 20:59
поделиться