Безопасность уровня уровня Spring использует Spring AOP, основанный на прокси-сервере. Это означает, что вызов метода на ссылку объекта будет вызовом прокси-сервера, и таким образом прокси-сервер сможет делегировать всем перехватчикам (например, @PreAuthorize
), которые имеют отношение к этому конкретному вызову метода.
Однако, как только вызов наконец достиг целевого объекта, вызовы любого метода, которые он может сделать сам по себе, будут вызваны против этой ссылки, а не прокси. Это означает, что самозапуск не приведет к тому, что совет, связанный с вызовом метода, получит шанс выполнить.
Дополнительную информацию можно получить здесь here.