Java 有选择地拒绝登录用户对操作子集的访问
在我的struts应用程序中,我希望在某些用户访问某些操作时,有选择地将其重定向到静态页面(基于他们的角色) 我不是在寻找完整的授权解决方案,但我的问题非常类似 有没有一种方法可以在struts-config.xml中添加一些标记或任何其他细节,这些标记或细节可以在java代码中使用,以确定这些操作是否属于我想要有选择地拒绝访问的类别 注意:我不直接为我的操作扩展org.apache.struts.action.action。相反,我定义了一个抽象类,它扩展了org.apache.struts.action.action和我的应用程序中的其他操作,扩展了这个抽象类。因此,我可以在这里执行验证。Java 有选择地拒绝登录用户对操作子集的访问,java,web-applications,struts,struts-config,Java,Web Applications,Struts,Struts Config,在我的struts应用程序中,我希望在某些用户访问某些操作时,有选择地将其重定向到静态页面(基于他们的角色) 我不是在寻找完整的授权解决方案,但我的问题非常类似 有没有一种方法可以在struts-config.xml中添加一些标记或任何其他细节,这些标记或细节可以在java代码中使用,以确定这些操作是否属于我想要有选择地拒绝访问的类别 注意:我不直接为我的操作扩展org.apache.struts.action.action。相反,我定义了一个抽象类,它扩展了org.apache.struts.
我可以使用mappings.getPath()在这里标识操作的类型。但是我不想硬编码我想要有选择地拒绝访问的路径列表,相反,我期待着是否可以在struts config.xml中配置它。这可以通过在
struts config.xml
文件中配置。您可以指定用户应该具有的角色,以便访问该特定操作
这样可以避免对mappings.getPath()
进行测试(我同意您的看法,这是一个丑陋的解决方案)
一旦配置了角色,您就可以创建一个自定义的请求处理器,以任何您喜欢的方式处理
您可以在web上找到有关Struts安全角色的更多信息,但是。谢谢。这很有帮助。我使用struts-config.xml中的parameter属性,并在这里添加一个marker参数,而不是使用roles属性(我计划用于RBAC)。此参数用于my AbstracAction,它在调用实际操作之前发送一些输入消息并执行常规验证。