Страница входа в приложение отображается при доступе к конечной точке REST — Payara-5.2021.8

#java

#Ява

Вопрос:

У меня есть веб-приложение, определенное/настроенное следующим образом:

lt;

 ?xml version="1.0" encoding="UTF-8"?gt;  lt;web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"gt;  lt;context-paramgt;  lt;param-namegt;javax.faces.PROJECT_STAGElt;/param-namegt;  lt;param-valuegt;Productionlt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.VALIDATE_EMPTY_FIELDSlt;/param-namegt;  lt;param-valuegt;falselt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.CLIENT_WINDOW_MODElt;/param-namegt;  lt;param-valuegt;urllt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.PARTIAL_STATE_SAVINGlt;/param-namegt;  lt;param-valuegt;falselt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONElt;/param-namegt;  lt;param-valuegt;truelt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;com.sun.faces.writeStateAtFormEndlt;/param-namegt;  lt;param-valuegt;falselt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.STATE_SAVING_METHODlt;/param-namegt;  lt;param-valuegt;serverlt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.ENABLE_CDI_RESOLVER_CHAINlt;/param-namegt;  lt;param-valuegt;truelt;/param-valuegt;  lt;/context-paramgt;  lt;context-paramgt;  lt;param-namegt;javax.faces.CONFIG_FILESlt;/param-namegt;  lt;param-value/gt;  lt;/context-paramgt;  lt;mime-mappinggt;  lt;extensiongt;eotlt;/extensiongt;  lt;mime-typegt;application/vnd.ms-fontobjectlt;/mime-typegt;  lt;/mime-mappinggt;  lt;mime-mappinggt;  lt;extensiongt;otflt;/extensiongt;  lt;mime-typegt;font/opentypelt;/mime-typegt;  lt;/mime-mappinggt;  lt;mime-mappinggt;  lt;extensiongt;ttflt;/extensiongt;  lt;mime-typegt;application/x-font-ttflt;/mime-typegt;  lt;/mime-mappinggt;  lt;mime-mappinggt;  lt;extensiongt;wofflt;/extensiongt;  lt;mime-typegt;application/x-font-wofflt;/mime-typegt;  lt;/mime-mappinggt;  lt;mime-mappinggt;  lt;extensiongt;woff2lt;/extensiongt;  lt;mime-typegt;application/x-font-woff2lt;/mime-typegt;  lt;/mime-mappinggt;  lt;mime-mappinggt;  lt;extensiongt;svglt;/extensiongt;  lt;mime-typegt;image/svg xmllt;/mime-typegt;  lt;/mime-mappinggt;  lt;servletgt;  lt;servlet-namegt;Faces Servletlt;/servlet-namegt;  lt;servlet-classgt;javax.faces.webapp.FacesServletlt;/servlet-classgt;  lt;load-on-startupgt;1lt;/load-on-startupgt;  lt;/servletgt;  lt;servletgt;  lt;servlet-namegt;Print Servletlt;/servlet-namegt;  lt;servlet-classgt;com.sys.hrsys.servlets.PrintToPDFlt;/servlet-classgt;  lt;/servletgt;  lt;filtergt;  lt;filter-namegt;SessionTimeoutFilterlt;/filter-namegt;  lt;filter-classgt;com.sys.hrsys.cdi.SessionTimeoutFilterlt;/filter-classgt;  lt;/filtergt;  lt;filter-mappinggt;  lt;filter-namegt;SessionTimeoutFilterlt;/filter-namegt;  lt;url-patterngt;*.xhtmllt;/url-patterngt;  lt;/filter-mappinggt;  lt;listenergt;  lt;listener-classgt;com.sys.hrsys.cdi.MySessionListenerlt;/listener-classgt;  lt;/listenergt;  lt;servlet-mappinggt;  lt;servlet-namegt;Faces Servletlt;/servlet-namegt;  lt;url-patterngt;/faces/*lt;/url-patterngt;  lt;/servlet-mappinggt;  lt;servlet-mappinggt;  lt;servlet-namegt;Print Servletlt;/servlet-namegt;  lt;url-patterngt;/print/*lt;/url-patterngt;  lt;/servlet-mappinggt;  lt;session-configgt;  lt;session-timeoutgt;10lt;/session-timeoutgt;  lt;tracking-modegt;COOKIElt;/tracking-modegt;  lt;/session-configgt;  lt;welcome-file-listgt;  lt;welcome-filegt;welcome.xhtmllt;/welcome-filegt;  lt;/welcome-file-listgt;  lt;error-pagegt;  lt;error-codegt;500lt;/error-codegt;  lt;locationgt;/WEB-INF/errors/generalErrors.xhtmllt;/locationgt;  lt;/error-pagegt;  lt;error-pagegt;  lt;exception-typegt;javax.faces.application.ViewExpiredExceptionlt;/exception-typegt;  lt;locationgt;/faces/welcome.xhtmllt;/locationgt;  lt;/error-pagegt;  lt;error-pagegt;  lt;error-codegt;404lt;/error-codegt;  lt;locationgt;/WEB-INF/errors/404.xhtmllt;/locationgt;  lt;/error-pagegt;  lt;login-configgt;  lt;auth-methodgt;FORMlt;/auth-methodgt;  lt;realm-namegt;hrsysRealmlt;/realm-namegt;  lt;form-login-configgt;  lt;form-login-pagegt;/faces/login.xhtmllt;/form-login-pagegt;  lt;form-error-pagegt;/faces/error.xhtmllt;/form-error-pagegt;  lt;/form-login-configgt;  lt;/login-configgt;  lt;security-constraintgt;  lt;display-namegt;SecuredRootlt;/display-namegt;  lt;web-resource-collectiongt;  lt;web-resource-namegt;Secured Rootlt;/web-resource-namegt;  lt;descriptiongt;Secured Rootlt;/descriptiongt;  lt;url-patterngt;/*lt;/url-patterngt;  lt;/web-resource-collectiongt;  lt;user-data-constraintgt;  lt;description/gt;  lt;transport-guaranteegt;CONFIDENTIALlt;/transport-guaranteegt;  lt;/user-data-constraintgt;  lt;/security-constraintgt;  lt;security-constraintgt;  lt;display-namegt;ForUserslt;/display-namegt;  lt;web-resource-collectiongt;  lt;web-resource-namegt;userslt;/web-resource-namegt;  lt;descriptiongt;For Userslt;/descriptiongt;  lt;url-patterngt;/faces/users/*lt;/url-patterngt;  lt;/web-resource-collectiongt;  lt;auth-constraintgt;  lt;description/gt;  lt;role-namegt;userslt;/role-namegt;  lt;/auth-constraintgt;  lt;user-data-constraintgt;  lt;description/gt;  lt;transport-guaranteegt;CONFIDENTIALlt;/transport-guaranteegt;  lt;/user-data-constraintgt;  lt;/security-constraintgt;  lt;security-rolegt;  lt;descriptiongt;Ordinary Userslt;/descriptiongt;  lt;role-namegt;userslt;/role-namegt;  lt;/security-rolegt;  lt;/web-appgt;  And I have a REST endpoint, within the same .war defined/configured as follows  @ApplicationPath("/register") public class RegisterServlet extends ResourceConfig {   public RegisterServlet() {  register(RSSecurityQuestions.class);  register(RSRegister.class);  register(CorsFilter.class);  register(RolesAllowedDynamicFeature.class);  register(EntityConstraintViolationException.class);  property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);  } }  @ApplicationScoped @Path("/securityQuestions") public class RSSecurityQuestions {   @Inject  Instancelt;SecurityQuestionDefServicegt; secQuestionService;   private Listlt;SecurityQuestiongt; secQuestionList;   @GET  @Produces({"application/json"})  @PermitAll  public void getSecurityQuestions(@Suspended final AsyncResponse asyncResponse, @Context ContainerRequestContext crc) {   Listlt;SecurityQuestiongt; secQuestionList = secQuestionService.get().getSecQuestionList();  SecurityQuestionResponseSupplier securityQuestionResponseSupplier = new SecurityQuestionResponseSupplier(secQuestionList);  LoginExceptionResponse loginExceptionResponse = new LoginExceptionResponse();  LoginResponseConsumer loginResponseConsumer = new LoginResponseConsumer(asyncResponse);  CompletableFuture.supplyAsync(securityQuestionResponseSupplier)  .exceptionally(loginExceptionResponse)  .thenAccept(loginResponseConsumer);  } }  

В настоящее время я использую payara-4.1.1.163. Я хочу перейти на payara-5.2021.8.

Для доступа к сервлету jsf требуется сначала войти в систему.

Моя проблема в том, что, когда я отправляю запрос на конечную точку REST, я получаю html — ответ-html-страницу входа в систему из сервлета faces. Система предлагает мне сначала войти в систему, как будто я хочу получить доступ к сервлету faces. Это происходит только тогда, когда я использую payara-5.2021.8. С помощью payara-4.1.1.163 я могу получить правильный ответ от конечной точки REST. Система не запрашивает вход в систему.

Какие конфигурации я должен выполнить в payara-5.2021.8, чтобы он не запрашивал/не отправлял страницу входа, когда я хочу получить доступ к конечной точке REST? Сообщите, какие изменения были внесены в последние версии Payara в отношении развертывания сервлетов jsf и предоставления конечных точек REST в той же войне.

Пожалуйста, помогите

Заранее спасибо.

Клифтон