Это что-то вроде вопроса с другого конца, но я подумал, что я его добавлю, потому что мне действительно пришлось копать в Интернете, чтобы это выяснить.
Есть много вещей о том, как проверять роли, но мало что говорит о том, что вы на самом деле проверяете, когда говорите hasRole ("бла")
HasRole проверяет предоставленные полномочия для аутентифицированного в настоящее время принципала
Так что на самом деле, когда вы видите hasRole ("бла") действительно означает hasAuthority ("бла") .
В случае, который я видел, вы делаете это с классом, который реализует UserDetails, который определяет метод с именем getAuthorities. В этом вы в основном добавите немного new SimpleGrantedAuthority("some name")
в список, основанный на некоторой логике. Имена в этом списке - это вещи, проверенные операторами hasRole.
Я предполагаю, что в этом контексте объект UserDetails является в настоящее время аутентифицированным принципалом. Есть некоторая магия, которая происходит внутри и вокруг провайдеров аутентификации и, в частности, менеджера аутентификации, который делает это возможным.