[struts] branch master updated: Minor code optimization in jasper reports result
This is an automated email from the ASF dual-hosted git repository. jogep pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/struts.git The following commit(s) were added to refs/heads/master by this push: new 2908d74 Minor code optimization in jasper reports result 2908d74 is described below commit 2908d746ce2ac2a6a5298ef0ecef7bff359fabb2 Author: Johannes Geppert AuthorDate: Sun Feb 10 16:15:38 2019 +0100 Minor code optimization in jasper reports result --- .../views/jasperreports/JasperReportsResult.java | 129 - .../views/jasperreports/ValueStackShadowMap.java | 23 ++-- 2 files changed, 81 insertions(+), 71 deletions(-) diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java index 4eeb52d..3fbdf98 100644 --- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java +++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java @@ -20,11 +20,22 @@ package org.apache.struts2.views.jasperreports; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.util.ValueStack; - -import net.sf.jasperreports.engine.*; -import net.sf.jasperreports.engine.export.*; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JRExporter; +import net.sf.jasperreports.engine.JRExporterParameter; +import net.sf.jasperreports.engine.JRParameter; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.export.HtmlExporter; +import net.sf.jasperreports.engine.export.JRCsvExporter; +import net.sf.jasperreports.engine.export.JRCsvExporterParameter; +import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; +import net.sf.jasperreports.engine.export.JRPdfExporter; +import net.sf.jasperreports.engine.export.JRRtfExporter; +import net.sf.jasperreports.engine.export.JRXlsExporter; +import net.sf.jasperreports.engine.export.JRXmlExporter; import net.sf.jasperreports.engine.util.JRLoader; - import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -35,7 +46,6 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -112,7 +122,7 @@ import java.util.TimeZone; * * * - * + * * or for pdf * * @@ -128,7 +138,7 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe private static final long serialVersionUID = -2523174799621182907L; -private final static Logger LOG = LogManager.getLogger(JasperReportsResult.class); +private static final Logger LOG = LogManager.getLogger(JasperReportsResult.class); protected String dataSource; protected String format; @@ -202,9 +212,7 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe } /** - * set time zone id - * - * @param timeZone + * @param timeZone set time zone id */ public void setTimeZone(final String timeZone) { this.timeZone = timeZone; @@ -244,8 +252,10 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe LOG.debug("Creating JasperReport for dataSource = {}, format = {}", dataSource, format); -HttpServletRequest request = (HttpServletRequest) invocation.getInvocationContext().get(ServletActionContext.HTTP_REQUEST); -HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext().get(ServletActionContext.HTTP_RESPONSE); +HttpServletRequest request = (HttpServletRequest) invocation.getInvocationContext() +.get(ServletActionContext.HTTP_REQUEST); +HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext() +.get(ServletActionContext.HTTP_RESPONSE); // Handle IE special case: it sends a "contype" request first. // TODO Set content type to config settings? @@ -265,8 +275,9 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe ValueStackDataSource stackDataSource = null; Connection conn = (Connection) stack.findValue(connection); -if (conn == null) +if (conn == null) { stackDataSource = new ValueStackDataSource(stack, dataSource, wrapField); +} if ("https".equalsIgnoreCase(request.getScheme())) { // set the the HTTP Header to work around IE SSL wei
[struts] branch master updated: Improve SecurityMemberAccess (#323)
This is an automated email from the ASF dual-hosted git repository. yasserzamani pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/struts.git The following commit(s) were added to refs/heads/master by this push: new 9466b61 Improve SecurityMemberAccess (#323) 9466b61 is described below commit 9466b615abbe4bccc5cf76ad54112128ce011e9d Author: Aleksandr Mashchenko AuthorDate: Sun Feb 10 21:47:27 2019 +0200 Improve SecurityMemberAccess (#323) * Improve SecurityMemberAccess Move public member check to be the first performed Remove final-s from methods to allow overriding Split check for statics into two separate methods * Change log level to warn --- .../xwork2/ognl/SecurityMemberAccess.java | 65 ++ 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java b/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java index fd36972..af87056 100644 --- a/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java +++ b/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java @@ -105,19 +105,25 @@ public class SecurityMemberAccess implements MemberAccess { public boolean isAccessible(Map context, Object target, Member member, String propertyName) { LOG.debug("Checking access for [target: {}, member: {}, property: {}]", target, member, propertyName); -if (checkEnumAccess(target, member)) { -LOG.trace("Allowing access to enum: target [{}], member [{}]", target, member); -return true; +final int memberModifiers = member.getModifiers(); + +if (!checkPublicMemberAccess(memberModifiers)) { +LOG.warn("Access to non-public [{}] is blocked!", member); +return false; } -final int memberModifiers = member.getModifiers(); -if (!checkStaticMemberAccess(member, memberModifiers)) { -LOG.warn("Access to static [{}] is blocked!", member); +if (!checkStaticFieldAccess(member, memberModifiers)) { +LOG.warn("Access to static field [{}] is blocked!", member); return false; } -if (!checkPublicMemberAccess(memberModifiers)) { -LOG.trace("Access to non-public [{}] is blocked!", member); +if (checkEnumAccess(target, member)) { +LOG.trace("Allowing access to enum: target [{}], member [{}]", target, member); +return true; +} + +if (!checkStaticMethodAccess(member, memberModifiers)) { +LOG.warn("Access to static method [{}] is blocked!", member); return false; } @@ -151,28 +157,39 @@ public class SecurityMemberAccess implements MemberAccess { } /** - * Check access for static members (via modifiers) - * - * Static non-field access result is allowStaticMethodAccess. - * Static field access result is allowStaticFieldAccess. + * Check access for static method (via modifiers). * * Note: For non-static members, the result is always true. * * @param member - * @param memberModifiers (minor optimization) + * @param memberModifiers * * @return */ -protected final boolean checkStaticMemberAccess(Member member, int memberModifiers) { -if (Modifier.isStatic(memberModifiers)) { -if (member instanceof Field) { -return allowStaticFieldAccess; -} else { -if (allowStaticMethodAccess) { -LOG.debug("Support for accessing static methods [member: {}] is deprecated!", member); -} -return allowStaticMethodAccess; +protected boolean checkStaticMethodAccess(Member member, int memberModifiers) { +if (Modifier.isStatic(memberModifiers) && !(member instanceof Field)) { +if (allowStaticMethodAccess) { +LOG.debug("Support for accessing static methods [member: {}] is deprecated!", member); } +return allowStaticMethodAccess; +} else { +return true; +} +} + +/** + * Check access for static field (via modifiers). + * + * Note: For non-static members, the result is always true. + * + * @param member + * @param memberModifiers + * + * @return + */ +protected boolean checkStaticFieldAccess(Member member, int memberModifiers) { +if (Modifier.isStatic(memberModifiers) && member instanceof Field) { +return allowStaticFieldAccess; } else { return true; } @@ -187,11 +204,11 @@ public class SecurityMemberAccess implements MemberAccess { * * @return */ -protected final boolean checkPublicMemberAccess(int memberModifiers) { +protected boolean che