【发布时间】:2017-07-14 08:57:04
【问题描述】:
我主要使用 JSP 和 Tomcat 作为我的服务器来构建这个应用程序。
我正在尝试设置授权级别,从而某些类别的用户可以执行某些操作(访问某些页面,例如创建新记录或搜索过去的记录),例如创建新用户只能由管理员完成。
我现在所做的是首先:
<%
String user = request.getParameter("name");
String pwd = request.getParameter("password");
String sql = "select * from members where name = ? and password = ?";
int role = 0;
// since execute returns an int of 1 or 0, we can use it for our if-else statement
if (BaseDAO.check(sql, user, pwd) != 0) {
session.setAttribute("user", user);
role = BaseDAO.checkRole(sql, user, pwd);
session.setAttribute("role", role);
response.sendRedirect("frameMgr.jsp");
} else {
session.setAttribute("login", 0);
response.sendRedirect("loginPage.jsp");
}
%>
登录成功后,我会从数据库中提取角色的值并将其设置为会话属性。然后稍后在我的 createNewUser 页面上,我有这个来检查用户是否具有分配的角色
<%
int role = (Integer) session.getAttribute("role");
// only allow people with admin role to create more accounts
if (role != 5) {
response.sendRedirect("frameContent.jsp"); //back to homepage
}
%>
但是我意识到这种方法效率低下,因为我必须在每一页上进行检查,如果将来有更改,我将不得不逐页更改代码。 有没有一种方法可以单独控制一个页面上的所有授权级别?而不必对我所有的 jsp 文件都这样做
【问题讨论】:
标签: java jsp jakarta-ee authorization