1

我对网络应用程序开发及其安全性以及试图了解周围的事物非常陌生。

我到处寻找在我的 web 应用程序中实现安全性的地方,他们要求使用declarative安全性。例如,在 tomcat 中,我可以在tomcat-user.xml文件中声明角色,如下所示。

<tomcat-users>
<user name="tomcat" password="s3cret" roles="manager-gui" />
</tomcat-users>

这部分我可以理解。

现在假设我在我的网络应用程序中添加了其中一些角色。现在我的网络应用程序的用户向我的网络应用程序中的某些资源发出请求。我想知道容器如何或者我会知道用户以哪个角色提出请求

谢谢你。

4

1 回答 1

1

使用 Tomcat 和 JSP:

DataSourceRealm 可以指向包含用户和用户角色表的数据库,但使用 UserDatabaseRealm(指向 tomcat-users.xml)也可以正常工作。

如果要保护特定文件夹中的所有 jsp 页面,请将其添加到 web.xml

<security-constraint>
<web-resource-collection>
  <web-resource-name>Folder Description</web-resource-name>
  <url-pattern>/foldername/*</url-pattern>
</web-resource-collection>
<auth-constraint>
  <role-name>ROLE_ADMIN</role-name>
</auth-constraint>
</security-constraint>

如果您想知道用户在进入页面时是否具有特定角色,您可以使用

boolean hasAdminRole = request.isUserInRole("ROLE_ADMIN");
于 2013-05-15T02:42:35.617 回答