我最近开始维护在线系统。它使用带有PrimeFaces的JSF作为前端,带有Java后端。 JSF对我来说是一项新技术。
在登录过程中,整个用户表(包括明文密码(很快将被修复))被加载到HttpSession属性中,并在系统的其他部分中被引用。该系统的用户少于50个,因此数据的大小对我来说不是一个大问题。
然而,所有用户数据都在会话中的事实是一个问题。
我是否不必要地担心,或者是否有办法通过客户端利用来获取此信息? 还有其他原因我可以把我的经理人的桌子作为紧急改写这种机制的理由吗?
下面的缩写代码:
login.xhtml
<p:inputText id="username" value="#{userBean.userName}" name="username"></p:inputText>
<p:password id="password" value="#{userBean.password}"></p:password>
<p:commandButton id="loginSubmit" value="Login" action="#{userBean.auth}"></p:commandButton>
UserBean.java
@ManagedBean(name = "userBean")
@SessionScoped
public class UserBean {
public String auth() {
// ...
FacesContext fctx = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fctx.getExternalContext().getSession(true);
HashMap<Long, UserDetail> usersMap = dbBean.getAllUserDetails();
session.setAttribute("usersMap", usersMap);
// ...
}
}
答案 0 :(得分:2)
虽然评论回答了你的问题,但让我们总结一下: