我是 Java EE 的新手,并不真正知道应该如何实现登录系统。假设我有一个带有用户表的 mysql 数据库,它得到了用户名和密码列。我应该如何实施安全的登录系统?所谓安全,是指我发送密码时的基本网络安全性,例如散列密码和 SSL 连接。
我查看基于表单的登录,但我可以理解如何通过内置页面 j_security_check 从数据库中获取数据?我不需要以某种方式定义连接字符串吗?然后我在哪里定义使用哈希和 SSL?
我正在使用tomcat v7.0。
我是 Java EE 的新手,并不真正知道应该如何实现登录系统。假设我有一个带有用户表的 mysql 数据库,它得到了用户名和密码列。我应该如何实施安全的登录系统?所谓安全,是指我发送密码时的基本网络安全性,例如散列密码和 SSL 连接。
我查看基于表单的登录,但我可以理解如何通过内置页面 j_security_check 从数据库中获取数据?我不需要以某种方式定义连接字符串吗?然后我在哪里定义使用哈希和 SSL?
我正在使用tomcat v7.0。
第一件事:不要将密码存储在数据库中。您可以存储哈希值。
这是一个简单的方法:
这是我能想象到的在 Java EE 中实现授权的最简单方法。
放一张这样的表格:
<h:form id="loginForm">
<h:inputText maxlength="255" size="20" tabindex="10" value="#{userBean.login}"
styleClass="inputField" id="username"/>
<h:inputSecret maxlength="255" size="20" tabindex="20"
value="#{userBean.password}" styleClass="inputField" id="password"/>
<h:commandButton value="login"
action="#{userBean.validate}" id="submit"/>
</h:form>
和托管bean:
@ManagedBean(name = "userBean")
@SessionScoped
public class UserBean {
private User user;
private String login;
private String password;
@PostConstruct
private void init() {
this.user = new User();
}
public String validate() {
// Validate given login and password here
// When user seems to be valid assign it to this.user and return "/someFileForAuthorizedUsers.xhtml";
this.login = null;
this.password = null;
return null;
}
}
不要忘记访问器。JSF 需要它们。