Spring boot 在Spring boot中访问JSF会话属性

Spring boot 在Spring boot中访问JSF会话属性,spring-boot,jsf-2.2,Spring Boot,Jsf 2.2,我正在使用Omnifaces Faces.setSessionAttribute,但我无法在身份验证提供程序中访问这些属性,因为Facescontext为空。您不需要Facescontext。这些应该存储在HttpSession中,因此从请求中获取这些就足够了。但是,理想情况下,您不应该访问提供程序中的任何内容,而应该由传入的身份验证对象提供。您的提供商不应该知道web、JSF等。是的,我现在可以获得属性,谢谢。但是关于从身份验证访问会话属性,我这样做是因为我使用用户名和密码在两个步骤上进行自定

我正在使用Omnifaces Faces.setSessionAttribute,但我无法在身份验证提供程序中访问这些属性,因为Facescontext为空。

您不需要
Facescontext
。这些应该存储在
HttpSession
中,因此从请求中获取这些就足够了。但是,理想情况下,您不应该访问提供程序中的任何内容,而应该由传入的
身份验证
对象提供。您的提供商不应该知道web、JSF等。是的,我现在可以获得属性,谢谢。但是关于从身份验证访问会话属性,我这样做是因为我使用用户名和密码在两个步骤上进行自定义身份验证,然后在用户名和密码验证后通过邮件发送令牌,在我看来,无论是
HttpSession
还是
FacesConext
都不是存储会话数据的方法。使用一个会话范围的bean(在普通EE的情况下)或@Autowire(在Spring的情况下)注入到您需要它的地方,会更干净(而且更现代)。它也是存储会话数据的一种类型安全的方法。您能进一步解释为什么会话范围的bean会更好吗?我认为会话bean将存储在服务器端(内存开销),我将检查它,因为我不确定