[英]Java Servlet How to filter pages by User Role
我正在編寫一個安全 web 應用程序。 我有一個問題。 例如,有一個頁面叫做“Manager (JSP)”。 我只希望管理員看到這個頁面。
當用戶登錄網站時,session 創建。
if(dao.check(uname, pass)) {
UserAccount user = new UserAccount();
user.setUsername(uname);
HttpSession session = request.getSession();
session.setAttribute("username", uname);
response.sendRedirect("welcome.jsp");
}
這是用戶帳戶 Class:
public class UserAccount {
private String username;
private String password;
private List<String> roles;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<String> getRoles() {
return roles;
}
public void setRoles(List<String> roles) {
this.roles = roles;
}
}
我有一個過濾器 class 實現過濾器。 程序如何了解誰是管理員並讓其查看管理員頁面?
您可以在 UserAccount class 中使用 boolean 屬性,如果用戶是管理員,則此屬性的值為true
,如果不是管理員,則為 false
public class UserAccount {
private String username;
private String password;
private List<String> roles;
private boolean is_admin;
...}
重定向到經理頁面將首先查看當前用戶是否為管理員,因此如果他不是管理員,他將被拒絕
注意:我看到您正在使用角色列表,所以也許您正在使用基於角色的訪問控制(如RBAC或RABAC )
在這種情況下,您可能通過他的角色授予管理員權限,所以這里的 Filter 方法將查看用戶的角色列表並檢查它是否包含管理員角色,如果是,它將重定向到管理器頁面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.