Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4930

SMI cannot be diasabled for action-packages found via the convention-plugin

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.5.16
    • 6.0.0
    • Plugin - Convention
    • None
    • Windows 10
      Java 1.8

    Description

      I'm trying to update Struts 2.3.34 to 2.5.16 and disabling SMI doesn't seem to work.

      I debuged XmlConfigurationProvider but in the packageConfig of our package (named default see below) SMI is correctly set to false. Debugging PackageBaseActionConfigBuilder shows that our default-package is used as parent package and in the parentPkg SMI is set to false. The pkgConfig however is alwasy null (line: 1043) and so a new package config is created in which SMI is set to true.

      Thus for all these actions methods i get the error that these methods aren't allowed.

      If I use @AllowedMethod-annotations it works fine.

      Below the beginning of our struts.xml

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
          "http://struts.apache.org/dtds/struts-2.5.dtd">
      <struts>
          <constant name="struts.action.extension" value="action" />
          <constant name="struts.convention.action.fileProtocols" value="jar,zip,vfsfile,vfszip" />
          <constant name="struts.convention.action.includeJars" value=".*/newd[-.\w]*\.jar(!/)?" />
          <constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*" />
          <constant name="struts.convention.result.path" value="/WEB-INF/jsp/" />
          <constant name="struts.custom.i18n.resources" value="applicationResources" />
          <constant name="struts.locale" value="de_DE" />
          <constant name="struts.multipart.maxSize" value="52428800" />
          <constant name="struts.objectFactory" value="spring" />
          <constant name="struts.enable.DynamicMethodInvocation" value="true" />
          <constant name="struts.ui.theme" value="simple" />
          <constant name="struts.ui.templateDir" value="template" />
          <constant name="struts.devMode" value="false" />
          <constant name="struts.el.throwExceptionOnFailure" value="true" />
      
          <package name="default" extends="struts-default" strict-method-invocation="false">
      
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Heidelbach Philipp Heidelbach
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: