У меня проблема с обработкой входа в JSF 2.0.Я действительно не знаю, иду ли я в правильном направлении.Я хочу быть конкретным, поэтому я укажу, как работает мое приложение
- страница входа в систему с bean-объектом сессионной области.
- после правильного входа в систему пользователь перенаправляется на следующую страницу сbean-объект другой сессии
- второй bean-компонент получает логин и пароль. Строки из bean-компонента firs для дальнейшего использования с базой данных
Мой вопрос заключается в том, чтобы создать две сессии для пользователя?Если так, как я могу убить первый сеанс.Если это не лучший способ управлять входом в систему, пожалуйста, исправьте меня.Заранее спасибо
вот простой пример
ВХОД ЛОШАДЬ
package main;
import java.io.Serializable;
import java.sql.SQLException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@SessionScoped
@ManagedBean(name="loginBean")
public class loginBean implements Serializable
{
private String login;
private String password;
public loginBean()
{
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String login() throws ClassNotFoundException, SQLException
{
SQL sql = new SQL(); //class connecting do database
if( sql.login(this.login, this.password) == true )
{
return "yes";
}
else
{
return "no";
}
}
}
ЛОГИН ВХОДвторой боб)
package main;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SessionScoped
@ManagedBean(name="panelBean")
public class panelBean implements Serializable{
private String login;
private String password;
FacesContext context = FacesContext.getCurrentInstance();
public panelBean()
{
loginBean Bean = (loginBean) context.getApplication().getVariableResolver().resolveVariable(context, "loginBean");
this.password = Bean.getPassword();
this.login = Bean.getLogin();
Bean.setPassword("");
Bean.setLogin("");
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse)ectx.getResponse();
HttpSession session = (HttpSession)ectx.getSession(false);
session.invalidate();
}
}
ЛИЦА КОНФИГ
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<navigation-rule>
<from-view-id>/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>yes</from-outcome>
<to-view-id>/panel.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>no</from-outcome>
<to-view-id>/login.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>