簡體   English   中英

Java Servlet 如何按用戶角色過濾頁面

[英]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;
...}

重定向到經理頁面將首先查看當前用戶是否為管理員,因此如果他不是管理員,他將被拒絕


注意:我看到您正在使用角色列表,所以也許您正在使用基於角色的訪問控制(如RBACRABAC

在這種情況下,您可能通過他的角色授予管理員權限,所以這里的 Filter 方法將查看用戶的角色列表並檢查它是否包含管理員角色,如果是,它將重定向到管理器頁面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM