Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有选择地拒绝登录用户对操作子集的访问_Java_Web Applications_Struts_Struts Config - Fatal编程技术网

Java 有选择地拒绝登录用户对操作子集的访问

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.

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

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

有没有一种方法可以在struts-config.xml中添加一些标记或任何其他细节,这些标记或细节可以在java代码中使用,以确定这些操作是否属于我想要有选择地拒绝访问的类别

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

这可以通过在
struts config.xml
文件中配置。您可以指定用户应该具有的角色,以便访问该特定操作

这样可以避免对
mappings.getPath()
进行测试(我同意您的看法,这是一个丑陋的解决方案)

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


您可以在web上找到有关Struts安全角色的更多信息,但是。

谢谢。这很有帮助。我使用struts-config.xml中的parameter属性,并在这里添加一个marker参数,而不是使用roles属性(我计划用于RBAC)。此参数用于my AbstracAction,它在调用实际操作之前发送一些输入消息并执行常规验证。