在我的struts应用程序中,我想有选择地重定向一些用户(基于他们的角色)到一个静态页面,当他们访问一些操作。
我不是在这里寻找完全成熟的授权解决方案,但我的问题非常相似。
是否有办法在struts-config.xml中放置一些标志或任何其他细节,可以在java代码中使用,以确定动作是否属于我想要选择性拒绝访问的类别?
注意:我没有直接扩展org.apache.struts.action.Action作为我的action。相反,我定义了一个抽象类,它扩展了org.apache.struts.action.Action,应用程序中的其他操作扩展了这个抽象类。因此,我可以在这里执行验证。我可以使用mappings.getPath()识别这里的操作类型。但我不想硬编码的路径列表,我想有选择地拒绝访问,相反,我期待着如果这可以配置在struts-config.xml。
这可以在struts-config.xml
文件中通过使用<action>
配置的roles
属性来配置。您可以指定您的用户应该拥有访问特定操作的角色。
这样你就可以避免在mappings.getPath()
上做测试(我同意你的看法,这是一个丑陋的解决方案)。
一旦配置了角色,您就可以创建一个自定义请求处理器,以您喜欢的任何方式处理这些角色。
您可以在web上找到关于Struts安全角色的更多信息,但是这里有一个基本的示例来帮助您入门。