使用 quarkus 中的身份验证保护 META-INF/resources 提供的资源
Securing resources served from META-INF/resources with authentication in quarkus
在 quarkus 中通过身份验证保护静态资源的惯用方法是什么?
在quarkus.io it's very easy to secure JAX-RS resources, e.g. via jwt or BasicAuth。但是我没能确定如何使用相同的身份验证机制来保护 resources/META-INF/resources
提供的资源。
作为解决方法,我们读取直接放入 resources
中的文件并编写一个直通 JAX-RS 资源:
@RequestScoped
@Path("static")
public class StaticResources {
@Inject
protected JsonWebToken jwt;
@GET
@Path("{filename}")
public Response serve(@PathParam("filename") String file) {
if (! hasValidJwt()) {
return Response.status(401).build();
}
return Response.ok(loadFromFile(file)).build();
}
...
}
这很好用(为了我们的目的)!但我假设有更好的方法来解决这个需求。
如果我没记错,你可以在 application.properties
中定义路径并保护它们。
这是一个例子:
https://quarkus.io/guides/security-authorization
相关行是:
quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated
在 quarkus 中通过身份验证保护静态资源的惯用方法是什么?
在quarkus.io it's very easy to secure JAX-RS resources, e.g. via jwt or BasicAuth。但是我没能确定如何使用相同的身份验证机制来保护 resources/META-INF/resources
提供的资源。
作为解决方法,我们读取直接放入 resources
中的文件并编写一个直通 JAX-RS 资源:
@RequestScoped
@Path("static")
public class StaticResources {
@Inject
protected JsonWebToken jwt;
@GET
@Path("{filename}")
public Response serve(@PathParam("filename") String file) {
if (! hasValidJwt()) {
return Response.status(401).build();
}
return Response.ok(loadFromFile(file)).build();
}
...
}
这很好用(为了我们的目的)!但我假设有更好的方法来解决这个需求。
如果我没记错,你可以在 application.properties
中定义路径并保护它们。
这是一个例子:
https://quarkus.io/guides/security-authorization
相关行是:
quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated