尝试公开存储库剩余资源。
我希望方法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")
,它的作用就像是一种魅力。
有什么想法吗?
答案 0 :(得分:1)
如果覆盖JpaRepository
默认方法,则将覆盖默认REST端点的行为。这些方法将不出现在search
路径下。
尝试访问findAll()
时使用localhost:8080/fillieres
,调用localhost:8080 / fillieres / {id}时使用findById(Integer id)
。