java - 如何使用 Micronaut Security 过滤请求?[Micronaut 安全 1.3.1]
问题描述
我使用 JWT 令牌来保护我的应用程序。application.yml 中的设置按预期工作。
现在我正在尝试过滤所有到达控制器的请求。
例如:
- 如果请求路径变量不匹配,我想拒绝呼叫,但前端有例外。
- 如果请求路径变量匹配,我想将调用转发给控制器。
我找到了两种不同的方法:HttpServerFilter 和 SecurityFilter。
过滤器类别:
@Filter("/**")
public class MySecurityFilter extends SecurityFilter {
@Override
protected Publisher<MutableHttpResponse<?>> doFilterOnce(HttpRequest<?> request,
ServerFilterChain chain) {
checkRules(request, chain, null, null, false);
return super.doFilterOnce(request, chain);
}
@Override
protected Publisher<MutableHttpResponse<?>> checkRules(HttpRequest<?> request,
ServerFilterChain chain, @Nullable RouteMatch routeMatch,
@Nullable Map<String, Object> attributes, boolean forbidden) {
return super.checkRules(request, chain, routeMatch, attributes, forbidden);
}
}
似乎 SecurityFilter 是更好的解决方案,但是如何使用 checkRules 以及 doFilterOnce 如何使用它?
解决方案
推荐阅读
- azure-data-explorer - 在 Kusto 中调试摄取失败
- java - 如何使用 openssl 命令验证 Logjam 问题?
- javascript - 如何添加自定义样式
- android - 应用程序的私人文件夹不会出现在图库中
- python - 如何获取不包含在 .content 中的 HTML 标记中的文本?
- jquery - 两个输入元素在焦点事件上返回相同的 ID
- ios - PDFTron 更改箭头注释方向 iOS
- java - 如何在 Java 中建模 PDDL 案例
- access-token - 获取 Myob AccountRight API 访问令牌错误
- angular - 从源“http://localhost:4200”访问“http://site.local/api/v1/profiles”的 XMLHttpRequest 已被 CORS 策略阻止: