Попытка создать приложение со страницей входа и с использованием метода входа Servlet 3.0. Я определил область в tomcat и настроил web.xml соответственно. Но когда я пытаюсь получить доступ к любой странице, даже странице входа, она не отображается, и я вижу теги JSF в коде. Я не знаю, что я что-то упустил. Подробности как следовать
Вот что я поместил в web.xml.
<security-constraint>
<display-name>Restricted</display-name>
<web-resource-collection>
<web-resource-name>Restricted Area</web-resource-name>
<url-pattern>/faces/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/index.xhtml</form-login-page>
<form-error-page>/index.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>user</role-name>
</security-role>
Ниже приводится область, определенная в tomcat
<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/db_name?user=user&password=password"
userTable="users" userNameCol="username" userCredCol="userpass"
userRoleTable="user_roles" roleNameCol="rolename" digest="MD5"/>
Код для входа в систему
public String login(){
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
try {
//Login via the Servlet Context
request.login(username, password);
return "success";
} catch (ServletException e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid Login", null));
e.printStackTrace();
}
return "failure";
}
Дайте мне знать, что я делаю что-то не так
Обновление Спасибо, ребята, все заработало. Мне пришлось изменить некоторые отображения URL-адресов в файле web.xml и переставить папки для параметров безопасности. В настоящее время это работает, но теперь просто странная проблема. Я определил
<form-login-config>
<form-login-page>/index.xhtml</form-login-page>
<form-error-page>/index.xhtml</form-error-page>
</form-login-config>
А теперь web.xml показывает ошибку на
<form-login-page>
и жалуется, что
Описание Ошибка типа пути к ресурсу: Атрибут ссылается на страницу с ошибкой формы /index.jsp, которой нет в веб-контенте web.xml / XXXX / WebContent / WEB-INF
Я понятия не имею, откуда это исходит, поскольку я не использую какой-либо JSP-файл. Любые подсказки