1

在我的 struts 应用程序中,我想在某些用户(基于他们的角色)访问某些操作时有选择地将他们重定向到静态页面。

我不是在这里寻找完整的授权解决方案,但我的问题非常相似。

有没有办法在 struts-config.xml 中放置一些标志或任何其他详细信息,这些信息可以在 java 代码中用于识别这些操作是否属于我想要选择性地拒绝访问的类别?

注意:我不直接为我的操作扩展 org.apache.struts.action.Action。相反,我定义了一个扩展 org.apache.struts.action.Action 的抽象类,并且我的应用程序中的其余操作扩展了这个抽象类。因此,我可以在这里执行验证。我可以使用 mappings.getPath() 来识别此处的操作类型。但是我不想硬编码我想要选择性地拒绝访问的路径列表,而是我期待着是否可以在 struts-config.xml 中进行配置。

4

1 回答 1

2

这可以通过使用配置上的属性在struts-config.xml文件中进行配置。您可以指定您的用户应该拥有哪些角色才能访问该特定操作。roles<action>

有了这个,你可以避免对mappings.getPath()(我同意你的观点,这是一个丑陋的解决方案)进行测试。

一旦配置了角色,您就可以自己创建一个自定义请求处理器,以您喜欢的任何方式处理这些角色

您可以在 Web 上找到有关 Struts 安全角色的更多信息,但这里有一个基本示例可以帮助您入门

于 2011-07-26T20:02:10.757 回答