我有一个关于Spring -恨的标准模式或机制或Spring数据中关于加密资源/实体的I的问题。
我要问的原因是,我们的项目的一个需求是,我们不把我们的对象的id传递到外部世界,它们不应该被用作GET请求的参数。
我知道,Spring数据和spring- even不会给出对象的in,除非它们是这样配置的,但是即使这样,我也可以在链接中看到in。
我知道我可以在Json序列化/沙漠化前后使用PropertyEditors或转换器加密/解密ids,但我只想知道还有更标准的方法吗?
寻求答案..。
发布于 2017-10-24 12:30:29
如果您拥有资源的唯一“业务ID”属性,则可以使用配置 SDR而不是实体ID。
首先,必须使用以下唯一属性创建实体的查找方法:
public interface MyEntityRepo extends JpaRepository<MyEntity, Long> {
@RestResource(exported = false)
Optional<CatalogResource> findByMyUniqueProperty(String myUniqueProperty);
}然后使用它配置SDR:
@Component
public class DataRestConfig extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.withCustomEntityLookup()
.forRepository(MyEntityRepo.class, MyEntity::getMyUniqueProperty, MyEntityRepo::findByMyUniqueProperty);
super.configureRepositoryRestConfiguration(config);
}
}在进行此自定义之后,您将拥有如下资源URI:
http://localhost:8080/myEntities/myUniquePropertyValue1https://stackoverflow.com/questions/46909705
复制相似问题