我有一个用户对象的存储库,我正在尝试通过复制CRUD存储库的签名来公开删除功能:
public interface UserRepository extends Repository<User, String>{
@RestResource(exported = false)
User findOne(String username);
@PreAuthorize("hasRole('ROLE_USERS_READ')")
List<User> findAll();
@PreAuthorize("hasRole('ROLE_USERS_WRITE')")
User save(User user);
@PreAuthorize("hasRole('ROLE_USERS_WRITE')")
void delete(String username);
@PreAuthorize("hasRole('ROLE_USERS_WRITE')")
void delete(User user);
}
保存用户的操作很顺利:
Request URL:http://localhost:8080/api/users
Request Method:POST
Status Code:201 Created
但是当我试图删除一个用户时,我收到了http 405错误,从我的理解来看,这意味着删除方法没有被公开暴露:
Request URL:http://localhost:8080/api/users/testUser3
Request Method:DELETE
Status Code:405 Method Not Allowed
当我使用CrudRepository进行删除调用时,它可以正常工作。欢迎任何帮助或建议。
谢谢, Ido