Hi,

Recently we had to update Struts2 to most recent version due to security issues. After update we've noticed some strange behaviour, in my application every action implements ParameterNameAware interface, till yesterday I thought that interface's method acceptableParameterName() is called _everytime_ the Struts tries to set a parameter, and that was the case till Struts 2.3.7 came out, I found that now the method is called _only_ if parameter's name is not allowed by Strut's configuration (see ParametersInterceptor class comparison: [1] [2]). This behaviour allows manipulating internal action's properties whose name met configuration patterns - in practice, in most application this allows accessing bussiness logic layer that shouldn't be accessed by users in any way. What is worse, there is not mention in version notes for 2.3.7 [3] about this change.


Please consider writing "version notes" more carefully when you doing such changes, I'm sure that most developers who rely on ParameterNameAware inteface doesn't know that in recent versions of Struts this behaviour has changed.


Thank you.

[1] http://grepcode.com/file/repo1.maven.org/maven2/org.apache.struts.xwork/xwork-core/2.3.4.1/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java?av=f#280 [2] http://grepcode.com/file/repo1.maven.org/maven2/org.apache.struts.xwork/xwork-core/2.3.7/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java/#282
[3] http://struts.apache.org/release/2.3.x/docs/version-notes-237.html

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to