使用 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