gpt4 book ai didi

Java Servlet 如何按用户角色过滤页面

转载 作者:行者123 更新时间:2023-12-01 16:33:08 24 4
gpt4 key购买 nike

我正在编写一个安全网络应用程序。我有一个问题。例如,有一个页面叫“管理器(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");
}

这是 UserAccount 类:

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;
}

}

我有一个实现 Filter 的 Filter 类。程序如何了解谁是管理员或不是管理员并让其查看管理员页面?

最佳答案

您可以在 UserAccount 类中使用 boolean 属性,如果用户是管理员,则该属性的值为 true ,如果不是,则为 false

public class UserAccount {
private String username;
private String password;
private List<String> roles;
private boolean is_admin;
...}

重定向到管理员页面将首先查看当前用户是否是管理员,因此如果他不是管理员,则会被拒绝

<小时/>

注意:我发现您正在使用角色列表,因此您可能正在使用基于角色的访问控制(例如 RBACRABAC )

在这种情况下,也许您通过他的角色授予管理员权限,因此这里 Filter 方法将查看用户的角色列表并检查它是否包含 admin 角色,如果是,它将重定向到管理员页面

关于Java Servlet 如何按用户角色过滤页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62008210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com