Sat*_*tya 9 java authentication servlets java-ee
在Java Servlet的我想编程方式检查用户是否登录或没有.
Bal*_*usC 11
在HttpServletRequest#getUserPrincipal()当你所概述采用Java EE提供的容器管理的安全性,如对方的回答指出,仅适用在这里.
但是,如果你正在养成自己的安全,那么你需要依靠HttpSession.这并不难,这里概述了每个步骤需要实现的内容:
登录时,User从数据库中获取并将其存储在servlet中的 会话中doPost():
User user = userDAO.find(username, password);
if (user != null) {
session.setAttribute("user", user);
} else {
// Show error like "Login failed, unknown user, try again.".
}
Run Code Online (Sandbox Code Playgroud)
注销时,只需使servlet中的会话无效doPost().它会破坏会话并清除所有属性.
session.invalidate();
Run Code Online (Sandbox Code Playgroud)
要检查如果User是登录或没有,创建一个过滤器,其映射与url-pattern覆盖限制的页面,例如/secured/*,/protected/*,等等并实现doFilter()象下面这样:
if (session.getAttribute("user") == null) {
response.sendRedirect(request.getContectPath() + "/login"); // Not logged in, redirect to login page.
} else {
chain.doFilter(request, response); // Logged in, just continue chain.
}
Run Code Online (Sandbox Code Playgroud)
这基本上都是.
| 归档时间: |
|
| 查看次数: |
16707 次 |
| 最近记录: |