我正在开发一个Java Servlets webapp,它将使用基于容器的安全性对用户进行身份验证。现在我的问题是用户可以映射到多个安全角色吗?
例如在我的情况下 - :
用户可以是
现在显然,管理员将拥有访问比教师更多功能的权限。那么对于像Tomcat这样的容器,只有基于容器的安全性怎么可能呢?
我也没有使用像Spring Security或Apache Shiro这样的任何框架。
答案 0 :(得分:1)
简而言之 - 用户甚至更好的群组 - 可以映射到许多安全角色。 最简单的方法是在web.xml中定义安全角色,如下所示:
<security-role>
<role-name>teacher</role-name>
</security-role>
....
然后在<security-constraint>
中使用它,您可以在其中指定哪个角色可以访问给定资源集。
最后,您需要将这些角色映射到用户,这是特定于服务器的。
您可以在“保护Web应用程序章节”中的WebSphere Application Server V7.0 Security Guide中找到有关安全角色和约束的一些基本信息。
我建议使用WebSphere Liberty和Eclipse与WebSphere Developer Tools,而不是使用Tomcat。它具有很好的图形界面,可用于编辑web.xml,因此您可以轻松定义这些角色和约束。它还有服务器配置编辑器,您可以在其中配置用户和组的基本注册表,并在角色和用户之间创建映射。
如果您需要更多信息如何在Liberty中进行设置,可以查看WebSphere Liberty Profile Guide for Developers