小编Bar*_*oss的帖子

如何在Spring MVC控制器中应用Spring Data投影?

是否可以直接指定projection何时调用数据存储库方法?这是存储库代码 - 注意我不想通过REST公开它,而是希望能够从服务或控制器中调用它:

@RepositoryRestResource(exported = false)
public interface UsersRepository extends PagingAndSortingRepository<User, Long> {

    @Query(value = "SELECT u FROM User u WHERE ....")
    public Page<User> findEmployeeUsers(Pageable p);
}
Run Code Online (Sandbox Code Playgroud)

然后在控制器中我这样做:

@PreAuthorize(value = "hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/users/employee")
public Page<User> listEmployees(Pageable pageable) {
    return usersRepository.findEmployeeUsers(pageable);
}
Run Code Online (Sandbox Code Playgroud)

有没有什么方法来指定projectionfindEmployeeUsers,当它被称为直接像上面的方法?

我意识到上面的代码对于某些人来说可能看起来很奇怪......可以通过REST公开存储库并将其放入@PreAuthorize存储库中.思想控制器是进行安全检查的最佳位置 - 测试更自然,更简单.

那么,可以projection以某种方式将事物传递到直接调用的存储库方法中吗?

spring spring-security spring-data

21
推荐指数
1
解决办法
1万
查看次数

Spring OAuth2 - oauth/authorize上的自定义"OAuth Approval"页面

建议自定义页面OAuth审批页面的建议方法是:

默认页面

我必须完全覆盖页面上的内容,需要添加样式,品牌等.实现这一目标的正确方法是什么?我在哪里可以看到默认页面的来源将其用作起点?

我还需要覆盖/ login页面,但我认为覆盖它的方法几乎是一样的.

spring-security spring-security-oauth2

13
推荐指数
2
解决办法
7028
查看次数

如何运行flyway:在SpringBoot应用程序迁移之前清理?

我正在使用Springboot和Flyway.迁移工作正常,但我希望能够clean在应用程序上下文加载test配置文件时执行flyway命令.

是否可以配置SpringBoot clean,然后migrate如果活动配置文件是test

flyway spring-boot

13
推荐指数
2
解决办法
1万
查看次数

EmberJS 2中路线变更通知的组件

我的任务是为Ember 2应用程序开发一个菜单组件.这将是一个复杂的组件,其视觉表示随着用户经过路线而改变.例如,它应该在"/ index"路由时禁用特定菜单及其所有项目,但在"/ details"等时启用它及其一些项目.

所以,我有一个传递单例模型的组件(当前存储在服务中,顺便说一下,它是在Ember中存储全局可用的单例模型的正确位置吗?).它可以很好地显示内容,但它不会尊重当前路线,也不会在用户浏览应用程序时捕获路径更改.我怎样才能实现它?

总结一下:

  1. 组件需要以某种方式获得当前路由以能够显示其初始状态,例如用户将"/ details"页面加入书签并访问它.
  2. 该组件必须以某种方式处理路由更改.
  3. 服务是保存单例模型(可能从服务器获取)的好地方.

您能否就如何解决上述三项问题提出自己的想法?

解决:好的,这是如何完成的,感谢@ Bek的建议:

import Ember from "ember";

export default Ember.Component.extend({
    router: Ember.inject.service("-routing"),

    didInsertElement: function() {
        let r = this.get("router");
        console.log("Initial route", r.get("currentRouteName"));

        r.addObserver("currentRouteName", this, "currentRouteNameChanged");
    },

    "currentRouteNameChanged": function(router, propertyName) {
          console.log(router.get("currentRouteName"));
    }
});
Run Code Online (Sandbox Code Playgroud)

更多问题:) - 我不得不currentRouteNameChanged用引号括起函数名称(使其成为一个字符串),否则它不会被调用.我想我错过了一些非常基本和明显的东西吗?

还有一个问题是时髦的服务名称-routing- @Bek,我可以自己弄清楚的任何提示,是否有可以注册信息的可注入内容列表?它还没有在Ember文档中我假设但是它的源代码在哪里检查出来?如何稳定的-routing名称,它会成为*routing最终版本的东西吗?

ember.js

6
推荐指数
1
解决办法
2369
查看次数

Golang:验证 x509 证书是否使用与指定公钥对应的私钥进行签名

我想要验证 X509 证书,以确保它是由与公钥对应的私钥签名的:

var publicKey *rsa.PublicKey = getPublicKey()
var certificate *x509.Certificate = getCertificate()
certificate.CheckSignature(...)
Run Code Online (Sandbox Code Playgroud)

在我看来,该certificate.CheckSignature方法是正确的方法,但我无法弄清楚它需要的参数,并想寻求社区的帮助。

顺便说一句,我能够在java中做同样的事情(在两个相邻的项目上工作)。它看起来像这样:

RSAPublicKey publicKey = getPublicKey();
X509Certificate certificate = X509CertUtils.parse(...);

// Verifies that this certificate was signed using the
// private key that corresponds to the specified public key.
certificate.verify(publicKey);
Run Code Online (Sandbox Code Playgroud)

我很感谢现场的任何提示!P。

go x509

6
推荐指数
1
解决办法
5985
查看次数

Spring Cloud Gateway 中基于用户计划的速率限制

假设我的用户订阅了一个计划。那么是否可以使用 Spring Cloud Gateway 根据订阅计划对用户请求进行速率限制?鉴于有 Silver 和 Gold 计划,是否会让 Silver 订阅具有 5/10 的补货率/突发容量和 50/100 的 Gold 订阅?

我天真地想到将 RedisRateLimiter 的新实例(见下文,我构造了一个具有 5/10 设置的新实例)传递给过滤器,但我需要以某种方式从请求中获取有关用户的信息,以便能够找出是否这是银和金计划。

@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
    return builder.routes()
        .route(p -> p
            .path("/get")
            .filters(f ->
              f.requestRateLimiter(r -> {
                  r.setRateLimiter(new RedisRateLimiter(5, 10))
              })
            .uri("http://httpbin.org:80"))
            .build();
}
Run Code Online (Sandbox Code Playgroud)

我是否试图通过 Spring Cloud Gateway 实现一些甚至可能实现的目标?如果有的话,你会推荐哪些其他产品来检查这个目的?

谢谢!

rate-limiting spring-cloud-gateway

4
推荐指数
1
解决办法
4536
查看次数