Ошибка ссылки выхода из системы безопасности Spring: «Эта ссылка отключена, поскольку не удалось сопоставить регистр навигации». - PullRequest
0 голосов
/ 18 мая 2018

У меня очень простая ссылка для выхода из системы

<h:link value="Logout" outcome="#{request.contextPath}/logout" styleClass="nav-link" />

Это дает мне ошибку This link is disabled because a navigation case could not be matched.

Но если я использую форму для выхода из системы, как показано ниже, это работает:

<h:form onsubmit="this.action='#{request.contextPath}/logout';">
    <p:commandButton value="Logout" ajax="false" />
</h:form>

Вот как я настраиваю безопасность для выхода из системы:

http.logout().logoutUrl("/logout").logoutSuccessUrl("/").invalidateHttpSession(true);

Могу ли я узнать, в чем проблема?

ОБНОВЛЕНИЕ

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

У меня есть ссылка contextPath/login, которая указывает на login.xhtml. Если я удалю login.xhtml из каталога моего проекта, то появится такое же сообщение об ошибке.Поэтому я подозреваю, что проблема в том, что JSF не смог найти файл с именем logout в каталоге моего проекта.Любая идея о том, как решить эту проблему?

ОБНОВЛЕНИЕ 2

Я обнаружил, что если я использую h:outputLink, то проблема будет решена, но вместо того, чтобы заставитьиспользуйте h:outputLink, я хочу знать реальную причину проблемы.Это потому, что h:link связано с правилом навигации JSF?Есть ли способ решить эту проблему?или я должен использовать альтернативу, как h:outputlink?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...