是否可以直接指定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)
有没有什么方法来指定projection的findEmployeeUsers,当它被称为直接像上面的方法?
我意识到上面的代码对于某些人来说可能看起来很奇怪......可以通过REST公开存储库并将其放入@PreAuthorize存储库中.思想控制器是进行安全检查的最佳位置 - 测试更自然,更简单.
那么,可以projection以某种方式将事物传递到直接调用的存储库方法中吗?
建议自定义页面OAuth审批页面的建议方法是:

我必须完全覆盖页面上的内容,需要添加样式,品牌等.实现这一目标的正确方法是什么?我在哪里可以看到默认页面的来源将其用作起点?
我还需要覆盖/ login页面,但我认为覆盖它的方法几乎是一样的.
我正在使用Springboot和Flyway.迁移工作正常,但我希望能够clean在应用程序上下文加载test配置文件时执行flyway命令.
是否可以配置SpringBoot clean,然后migrate如果活动配置文件是test?
我的任务是为Ember 2应用程序开发一个菜单组件.这将是一个复杂的组件,其视觉表示随着用户经过路线而改变.例如,它应该在"/ index"路由时禁用特定菜单及其所有项目,但在"/ details"等时启用它及其一些项目.
所以,我有一个传递单例模型的组件(当前存储在服务中,顺便说一下,它是在Ember中存储全局可用的单例模型的正确位置吗?).它可以很好地显示内容,但它不会尊重当前路线,也不会在用户浏览应用程序时捕获路径更改.我怎样才能实现它?
总结一下:
您能否就如何解决上述三项问题提出自己的想法?
解决:好的,这是如何完成的,感谢@ 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最终版本的东西吗?
我想要验证 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。
假设我的用户订阅了一个计划。那么是否可以使用 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 实现一些甚至可能实现的目标?如果有的话,你会推荐哪些其他产品来检查这个目的?
谢谢!