首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-hateoas或Spring数据中的Id加密

spring-hateoas或Spring数据中的Id加密
EN

Stack Overflow用户
提问于 2017-10-24 11:44:32
回答 1查看 245关注 0票数 0

我有一个关于Spring -恨的标准模式或机制或Spring数据中关于加密资源/实体的I的问题。

我要问的原因是,我们的项目的一个需求是,我们不把我们的对象的id传递到外部世界,它们不应该被用作GET请求的参数。

我知道,Spring数据和spring- even不会给出对象的in,除非它们是这样配置的,但是即使这样,我也可以在链接中看到in。

我知道我可以在Json序列化/沙漠化前后使用PropertyEditors或转换器加密/解密ids,但我只想知道还有更标准的方法吗?

寻求答案..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 12:30:29

如果您拥有资源的唯一“业务ID”属性,则可以使用配置 SDR而不是实体ID。

首先,必须使用以下唯一属性创建实体的查找方法:

代码语言:javascript
复制
public interface MyEntityRepo extends JpaRepository<MyEntity, Long> {

  @RestResource(exported = false)
  Optional<CatalogResource> findByMyUniqueProperty(String myUniqueProperty);
}

然后使用它配置SDR:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
http://localhost:8080/myEntities/myUniquePropertyValue1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46909705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档