#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