struts2 DMI

在使用DMI(动态方法调用)的时候要注意struts.xml配置时要把

?





1

<constant name="struts.enable.DynamicMethodInvocation"
value="true"/>

不然会出现错误

完整示例代码

struts.xml


 <constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package name="default" namespace="/path" extends="struts-default">

<action name="path" class="com.pengli.structs2.actionstudy.IndexAction3">
<result name ="a">
/MyPath.jsp
</result>
</action>
</package>
<package name="default2" namespace="/" extends="struts-default">
<action name="path2" class="com.pengli.structs2.actionstudy.IndexAction3">
<result name ="a">
/MyPath.jsp
</result>
<result name ="add">
/hello.jsp
</result>
<result name ="edit">
/index.jsp
</result>
</action>
</package>

IndexAction3


package com.pengli.structs2.actionstudy;
import com.opensymphony.xwork2.ActionSupport;
public class IndexAction3 extends ActionSupport{
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return "a";
}

public String add()
{
return "add";
}

public String edit()
{
return "edit";
}
}

web.xml


  <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

struts2 DMI,布布扣,bubuko.com

时间: 2024-12-13 14:04:37

struts2 DMI的相关文章

struts2 DMI无法运行

初学struts,在学习动态方法调用的时候,写的链接为<a href="user/user!list">添加学生</a> 但是在点击链接时,出现下面这样的错误提示信息: There is no Action mapped for namespace [/user] and action name [user!add] associated with context path [/Struts2_050_ActionMethod] 查了文档才知道,原来struts

Struts2命令执行各版本记录

Struts2命令执行集合 截止至S2-037 原文链接:http://blog.0kami.cn/2017/01/13/Struts2-history-payload/ Struts2框架的RCE远程命令执行的确是一个比较经典的漏洞,这个框架犹如一个筛子,一个人十个指头能按住几个洞-- 参考描述: Struts2 S2-001 影响版本:2.0.0 - 2.0.8具体详情:https://struts.apache.org/docs/s2-001.html该漏洞因为用户提交表单数据并且验证失败

Struts2的DMI跟SMI

我使用的Struts2的版本是2.5.2,今天在使用Struts2的DMI(动态方法调用)的时候出现了一个有趣的问题,我先把我的配置及代码展示一下: web.xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> &l

struts2 CVE-2012-0392 S2-008 Strict DMI does not work correctly allows remote command execution and arbitrary file overwrite

catalog 1. Description 2. Effected Scope 3. Exploit Analysis 4. Principle Of Vulnerability 5. Patch Fix 1. Description Struts2框架存在一个DevMode模式,方便开发人员调试程序.如果启用该模式,攻击者可以构造特定代码导致OGNL表达式执行,以此对主机进行入侵Remote command execution and arbitrary file overwrite, St

Struts2中DMI(动态方法调用)

1 <package name="front" namespace="/front" extends="struts-default"> 2 <default-action-ref name="index" /> 3 <action name="helloword" class="struts.IndexAction"> 4 <result na

struts2的动态方法调用(DMI)和通配符映射

动态方法调用 1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 [html] view plain copy struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即action名称!方法名称. struts.xml [html] view plain copy <action name="query" class="action.QueryAction"> <result

Struts2的DMI动态方法调用

Struts2的DMI动态方法调用:!后面跟方法名 struts.xml里要加<constant name="struts.enable.DynamicMethodInvocation" value="true"/> 因为有的版本默认是false

struts2中通配符和DMI(动态方法调用)

在struts2中不建议使用Dynamic Method Invocation,具体原因见官方文档: http://struts.apache.org/docs/action-configuration.html#ActionConfiguration-WildcardMethod; 刚刚接触这块,所以两种方法各自实现一下: 1)动态方法调用: struts.xml文件: <package name="default" namespace="/yin" ext

Struts2动态方法调用(DMI)

在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性这种方式我们前面已经用到过,类似下面的配置就可以实现 <action name="chainAction" class="chapter2.action.Chapter2Action" method="chainAction"> <result name="chai