Я работаю над небольшим бэкэндом. Чтобы обеспечить эту вещь, я хочу использовать JWT. Мой Tech-стек: Payara & Keycloak К счастью, я нашел отличный учебник (https://kodnito.com/posts/microprofile-jwt-with-keycloak/)
Против предложения автора я хочу защитить все конечные точки под / resources / * с помощью сеть. xml.
Это моя сеть. xml:
...
<security-constraint>
<display-name>App-Name</display-name>
<web-resource-collection>
<web-resource-name>App-Name</web-resource-name>
<description/>
<url-pattern>/resources/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>mysimplerole</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description/>
<role-name>mysimplerole</role-name>
</security-role>
...
Пока все хорошо. Если я отправляю запрос конечной точке, например, http://localhost: 8080 / resources / test , я получаю 401, как и ожидалось.
Если я добавлю @LoginConfig (authMethod = "MP-JWT" ) к моей конфигурации JAXRSC. java и снова вызовите конечную точку. Я получаю 200, но контент не отправляется, я ожидаю, что появится 401. Если я добавлю JWT-токен в свой запрос, то отобразится ожидаемое содержимое 200+.
TestResource. java:
@Path("test")
public class TestResource {
@GET
public Response test() {
return Response.ok("HI").build();
}
}
JAXRSConfiguration. java
@ApplicationPath("/resources")
@LoginConfig(authMethod = "MP-JWT")
public class JAXRSConfiguration extends Application {
}
Итак, вопрос в том, что мне нужно сделать, чтобы получить 401, если к запросу не добавлен / или неверный токен?