Защита ресурсов, обслуживаемых из META-INF / ресурсов с аутентификацией в quarkus

#java #authentication #jax-rs #quarkus

#java #аутентификация #jax-rs #quarkus

Вопрос:

Каков идиоматический способ защиты статических ресурсов с помощью аутентификации в quarkus?

В quarkus.io очень легко защитить ресурсы JAX-RS, например, с помощью jwt или BasicAuth. Но мне не удалось определить, как защитить ресурсы resources/META-INF/resources , обслуживаемые с помощью того же механизма аутентификации.

В качестве обходного пути мы считываем файлы, помещенные непосредственно в resources ресурс JAX-RS, и записываем их через ресурс 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();
    }

    ...
}
 

Это отлично работает (для наших целей)! Но я предполагаю, что есть лучшие способы решить это требование.

Ответ №1:

если я не ошибаюсь, вы можете определить пути application.properties и защитить их.

Вот пример:

https://quarkus.io/guides/security-authorization

соответствующие строки:

 quarkus.http.auth.permission.authenticated.paths=/*
quarkus.http.auth.permission.authenticated.policy=authenticated