Einstellung/erste session Attribut in JSF
Bin ich versucht zu implementieren einfache log-in-Funktionalität in einer JSF-Anwendung. Nach dieser Antwort, implementierte ich eine AuthenticationFilter. Ich bin versucht, ein Objekt in meinem managed bean als :
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
session.setAttribute("user", user);
doFilter Methode der AuthenticationFilter sieht wie folgt aus:
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
if (((HttpServletRequest) req).getSession().getAttribute("user") == null){
((HttpServletResponse) resp).sendRedirect("../login.jsf");
} else {
chain.doFilter(req, resp);
}
}
Bekomme ich immer ((HttpServletRequest) req).getSession().getAttribute("user") == null
(true). Ich habe gesucht und angewendet, viele alternativen wie (in meinem bean) :
facesContext.getExternalContext().getSessionMap().put("user", user);
request.getSession().setAttribute("user", user);
session.getServletContext().setAttribute("user", user); //DISASTER
Ich habe keine Ahnung, wie die Verwaltung in dieser Sache. Scheinbar doppelte Frage did ' NT helfen. Was mache ich falsch? Wie kann ich machen, damit es funktioniert? Gibt es einen guten und sauberen Weg, es zu tun mit JSF Fähigkeiten?
JSESSIONID
cookie richtig gepflegt über Anfragen durch den browser? Verfolgen Sie den HTTP-Verkehr.InformationsquelleAutor Umer Hayat | 2012-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Empfehle ich Ihnen, verwenden Sie ein Sicherheits-Bibliothek, wie die Vorherige Antwort. Es gibt zu viele Möglichkeiten, dies zu tun falsch...
Aber wenn Sie tot sind gesetzt, es selbst zu tun, nicht setzen Sie dieses in der Sitzung. Deklarieren Sie eine ManagedBean und Zweck, für den er als session-Ebene. Eine Eigenschaft der bean werden die Benutzernamen.
InformationsquelleAutor Jonathan S. Fisher