Фильтрация встроенных ресурсов отдыха jpa - PullRequest
0 голосов
/ 26 июня 2019

Попытка выставить ресурс отдыха репозитория.

Я хочу, чтобы методы findAll() и findById() были общедоступными (доступны, даже если пользователь не подключен), а остальные методы были доступнытолько когда аутентифицированный пользователь имеет ROLE_ADMIN

@RepositoryRestResource
@PreAuthorize("hasRole('ROLE_ADMIN')")
public interface FilliereServices extends JpaRepository<Filliere, Integer> {

    @PreAuthorize("permitAll")
    public List<Filliere> findAll();

    @PreAuthorize("permitAll")
    public Optional<Filliere> findById(Integer id);
}

localhost: 8080 / fillieres не доступен должным образом, но localhost: 8080 / fillieres / search / findAll выдает

org.springframework.data.rest.webmvc.ResourceNotFoundException

Я пробовал @RestResource(path="findAll") на findAll(), но та же проблема.Однако, если я добавлю только @Query("FROM Filliere"), это будет работать как шарм.

Есть идеи?

1 Ответ

1 голос
/ 27 июня 2019

Если вы переопределяете методы JpaRepository по умолчанию, то вы переопределяете поведение конечных точек REST по умолчанию. Эти методы NOT появятся в пути search. findAll() используется при попытке доступа к localhost:8080/fillieres, findById(Integer id) используется при вызове localhost: 8080 / fillieres / {id}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...