Я использую базовую аутентификацию tomcat для своего веб-приложения:
Я добавил следующие строки в web.xml в своем веб-приложении:
<security-constraint>
<web-resource-collection>
<web-resource-name>webpages</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
<user-data-constraint>
<!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>*</role-name>
</security-role>
Моя ссылка для выхода:
<h:commandLink value="Logout" action="#{userBean.logout}" />
Мой Действие ссылки выхода из системы:
public void logout() throws IOException
{
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
FacesContext.getCurrentInstance().getExternalContext().redirect("add_international_job.faces");
}
Теперь, когда вызывается выход из системы, выполняется перенаправление на другую страницу, которая требует аутентификации. Но это отображается, когда пользователь вошел в систему. PS: когда пользователь впервые вводит URL-адрес той же страницы в адресной строке, ему предоставляется вызов аутентификации (это означает, что нет проблем с защитой этой страницы паролем) .