diff --git a/iplass-admin/src/main/java/org/iplass/adminconsole/client/metadata/ui/template/report/ReportTemplateEditPane.java b/iplass-admin/src/main/java/org/iplass/adminconsole/client/metadata/ui/template/report/ReportTemplateEditPane.java index 213d6279b2..d9618b9e7f 100644 --- a/iplass-admin/src/main/java/org/iplass/adminconsole/client/metadata/ui/template/report/ReportTemplateEditPane.java +++ b/iplass-admin/src/main/java/org/iplass/adminconsole/client/metadata/ui/template/report/ReportTemplateEditPane.java @@ -93,6 +93,8 @@ public class ReportTemplateEditPane extends TemplateTypeEditPane implements HasE private TextItem jasperDataSourceAttributeNameField; /** Jasper PasswordAttributeName */ private TextItem jasperPasswordAttributeNameField; + /** Jasper OwnerPasswordAttributeName */ + private TextItem jasperOwnerPasswordAttributeNameField; /** Poi PasswordAttributeName */ private DynamicForm poiPasswordAttributeNameForm; @@ -226,8 +228,10 @@ public void onSubmit(SubmitEvent event) { jasperDataSourceAttributeNameField.setTitle("DataSource AttributeName"); jasperPasswordAttributeNameField = new MtpTextItem(); jasperPasswordAttributeNameField.setTitle("Password AttributeName"); + jasperOwnerPasswordAttributeNameField = new MtpTextItem(); + jasperOwnerPasswordAttributeNameField.setTitle("Owner Password AttributeName"); - jasperAttributeForm.setItems(jasperDataSourceAttributeNameField, jasperPasswordAttributeNameField); + jasperAttributeForm.setItems(jasperDataSourceAttributeNameField, jasperPasswordAttributeNameField, jasperOwnerPasswordAttributeNameField); //Jasper ParamMap部分 jasperParamMapPane = new JasperReportParamMapGridPane(); @@ -329,6 +333,8 @@ public TemplateDefinition getEditDefinition(TemplateDefinition definition) { //PasswordAttributeName jasperTemplate.setPasswordAttributeName(SmartGWTUtil.getStringValue(jasperPasswordAttributeNameField, true)); + //OwnerPasswordAttributeName + jasperTemplate.setOwnerPasswordAttributeName(SmartGWTUtil.getStringValue(jasperOwnerPasswordAttributeNameField, true)); //パラメータマッピング設定 jasperTemplate.setParamMap(jasperParamMapPane.getParamMap()); @@ -447,6 +453,9 @@ private void addReportTypeParameter(ReportType type, String prefix) { if (!SmartGWTUtil.isEmpty(jasRepo.getPasswordAttributeName())) { addUploadParameter(prefix + ReportTemplateUploadProperty.JASPER_PASSWORD_ATTRIBUTE_NAME, jasRepo.getPasswordAttributeName()); } + if (!SmartGWTUtil.isEmpty(jasRepo.getOwnerPasswordAttributeName())) { + addUploadParameter(prefix + ReportTemplateUploadProperty.JASPER_OWNER_PASSWORD_ATTRIBUTE_NAME, jasRepo.getOwnerPasswordAttributeName()); + } } else if (type instanceof PoiReportType) { addUploadParameter(prefix + ReportTemplateUploadProperty.REPORT_TYPE, PoiReportType.class.getName()); @@ -557,6 +566,7 @@ private void setReportType(ReportType type) { jasperParamMapPane.setParamMap(jasRepo.getParamMap()); jasperDataSourceAttributeNameField.setValue(jasRepo.getDataSourceAttributeName()); jasperPasswordAttributeNameField.setValue(jasRepo.getPasswordAttributeName()); + jasperOwnerPasswordAttributeNameField.setValue(jasRepo.getOwnerPasswordAttributeName()); removeMembers(poiPasswordAttributeNameForm, reportOutPane); removeMembers(jxlsPasswordAttributeNameForm, jxlsContextParamMapPane, jxlsReportOutputLogicPane); beforeReportType = JasperReportType.class.getName(); @@ -653,6 +663,8 @@ public LocalizedReportDefinition getEditLocalizedReportDefinition(LocalizedRepor jasperTemplate.setDataSourceAttributeName(SmartGWTUtil.getStringValue(jasperDataSourceAttributeNameField, true)); //PasswordAttributeName jasperTemplate.setPasswordAttributeName(SmartGWTUtil.getStringValue(jasperPasswordAttributeNameField, true)); + //OwnerPasswordAttributeName + jasperTemplate.setOwnerPasswordAttributeName(SmartGWTUtil.getStringValue(jasperOwnerPasswordAttributeNameField, true)); definition.setReportType(jasperTemplate); } else if (JxlsReportType.class.getName().equals(reportTypeField.getValueAsString())) { diff --git a/iplass-admin/src/main/java/org/iplass/adminconsole/server/metadata/rpc/template/ReportTemplateUploadServiceImpl.java b/iplass-admin/src/main/java/org/iplass/adminconsole/server/metadata/rpc/template/ReportTemplateUploadServiceImpl.java index f75ed58815..dbdb1fc5b5 100644 --- a/iplass-admin/src/main/java/org/iplass/adminconsole/server/metadata/rpc/template/ReportTemplateUploadServiceImpl.java +++ b/iplass-admin/src/main/java/org/iplass/adminconsole/server/metadata/rpc/template/ReportTemplateUploadServiceImpl.java @@ -381,6 +381,10 @@ private ReportType createReportType(HashMap args) { if (StringUtil.isNotEmpty(passwordAttributeName)) { jasperTemplate.setPasswordAttributeName(passwordAttributeName); } + String ownerPasswordAttributeName = (String) args.get(ReportTemplateUploadProperty.JASPER_OWNER_PASSWORD_ATTRIBUTE_NAME); + if (StringUtil.isNotEmpty(ownerPasswordAttributeName)) { + jasperTemplate.setOwnerPasswordAttributeName(ownerPasswordAttributeName); + } return jasperTemplate; } else { diff --git a/iplass-admin/src/main/java/org/iplass/adminconsole/shared/metadata/dto/template/ReportTemplateUploadProperty.java b/iplass-admin/src/main/java/org/iplass/adminconsole/shared/metadata/dto/template/ReportTemplateUploadProperty.java index 92f5412b03..2774ef63b3 100644 --- a/iplass-admin/src/main/java/org/iplass/adminconsole/shared/metadata/dto/template/ReportTemplateUploadProperty.java +++ b/iplass-admin/src/main/java/org/iplass/adminconsole/shared/metadata/dto/template/ReportTemplateUploadProperty.java @@ -59,8 +59,12 @@ public interface ReportTemplateUploadProperty extends UploadProperty { /** Jasper DataSourceAttributeName */ public static final String JASPER_DATASOURCE_ATTRIBUTE_NAME = "jasperDataSourceAttributeName"; + /** Jasper PasswordAttributeName */ public static final String JASPER_PASSWORD_ATTRIBUTE_NAME = "jasperPasswordAttributeName"; + + /** Jasper OwnerPasswordAttributeName */ + public static final String JASPER_OWNER_PASSWORD_ATTRIBUTE_NAME = "jasperOwnerPasswordAttributeName"; /** Poiレポート出力ロジック形式 */ public static final String POI_LOGIC_NAME = "poiLogicName"; diff --git a/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingEngine.java b/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingEngine.java index 04c7f11112..7517532053 100644 --- a/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingEngine.java +++ b/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingEngine.java @@ -160,6 +160,10 @@ public void exportReport( WebRequestStack context, ReportingOutputModel model ) if (StringUtil.isNotEmpty(jasperModel.getPasswordAttributeName())) { password = (String)getAttribute(request, jasperModel.getPasswordAttributeName()); } + String ownerPassword = null; + if (StringUtil.isNotEmpty(jasperModel.getOwnerPasswordAttributeName())) { + ownerPassword = (String)getAttribute(request, jasperModel.getOwnerPasswordAttributeName()); + } // JasperPrintインスタンス生成 List jrList = new ArrayList(); @@ -180,10 +184,17 @@ public void exportReport( WebRequestStack context, ReportingOutputModel model ) pdfExporter.setExporterOutput(output); SimplePdfExporterConfiguration config = new SimplePdfExporterConfiguration(); - if (StringUtil.isNotEmpty(password)) { - config.setOwnerPassword(password); - config.setUserPassword(password); + if (StringUtil.isNotEmpty(password) || StringUtil.isNotEmpty(ownerPassword)) { config.setEncrypted(true); + if (StringUtil.isNotEmpty(password)) { + config.setUserPassword(password); + } + if (StringUtil.isNotEmpty(ownerPassword)) { + config.setOwnerPassword(ownerPassword); + } else if (StringUtil.isNotEmpty(password)) { + // ownerパスワードがnullの場合は下位互換性のためuserパスワードをセット + config.setOwnerPassword(password); + } } pdfExporter.setConfiguration(config); diff --git a/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingOutputModel.java b/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingOutputModel.java index 84bfe2f1a7..b7bfc531a6 100644 --- a/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingOutputModel.java +++ b/iplass-web/src/main/java/org/iplass/mtp/impl/report/JasperReportingOutputModel.java @@ -37,6 +37,7 @@ public class JasperReportingOutputModel implements ReportingOutputModel{ private MetaReportParamMap[] maps; private String dataSourceAttributeName; private String passwordAttributeName; + private String ownerPasswordAttributeName; private final String JASPER_STR = "jasper"; private final String JRXML_STR = "jrxml"; @@ -107,4 +108,12 @@ public void setPasswordAttributeName(String passwordAttributeName) { this.passwordAttributeName = passwordAttributeName; } + public String getOwnerPasswordAttributeName() { + return ownerPasswordAttributeName; + } + + public void setOwnerPasswordAttributeName(String ownerPasswordAttributeName) { + this.ownerPasswordAttributeName = ownerPasswordAttributeName; + } + } diff --git a/iplass-web/src/main/java/org/iplass/mtp/impl/web/template/report/MetaJasperReportType.java b/iplass-web/src/main/java/org/iplass/mtp/impl/web/template/report/MetaJasperReportType.java index d53226dffd..eacbf63c8d 100644 --- a/iplass-web/src/main/java/org/iplass/mtp/impl/web/template/report/MetaJasperReportType.java +++ b/iplass-web/src/main/java/org/iplass/mtp/impl/web/template/report/MetaJasperReportType.java @@ -41,6 +41,9 @@ public class MetaJasperReportType extends MetaReportType { /** パスワードAttribute名 */ private String passwordAttributeName; + /** オーナーパスワードAttribute名 */ + private String ownerPasswordAttributeName; + public MetaReportParamMap[] getParamMap() { return paramMap; } @@ -65,6 +68,14 @@ public void setPasswordAttributeName(String passwordAttributeName) { this.passwordAttributeName = passwordAttributeName; } + public String getOwnerPasswordAttributeName() { + return ownerPasswordAttributeName; + } + + public void setOwnerPasswordAttributeName(String ownerPasswordAttributeName) { + this.ownerPasswordAttributeName = ownerPasswordAttributeName; + } + @Override public void applyConfig(ReportType reportType) { JasperReportType def = (JasperReportType)reportType; @@ -85,6 +96,7 @@ public void applyConfig(ReportType reportType) { dataSourceAttributeName = def.getDataSourceAttributeName(); passwordAttributeName = def.getPasswordAttributeName(); + ownerPasswordAttributeName = def.getOwnerPasswordAttributeName(); } @Override @@ -104,6 +116,7 @@ public ReportType currentConfig() { definition.setDataSourceAttributeName(dataSourceAttributeName); definition.setPasswordAttributeName(passwordAttributeName); + definition.setOwnerPasswordAttributeName(ownerPasswordAttributeName); return definition; } @@ -136,6 +149,7 @@ public void setParam(ReportingOutputModel createOutputModel) { model.setMaps(paramMap); } model.setPasswordAttributeName(passwordAttributeName); + model.setOwnerPasswordAttributeName(ownerPasswordAttributeName); } } } diff --git a/iplass-web/src/main/java/org/iplass/mtp/web/template/report/definition/JasperReportType.java b/iplass-web/src/main/java/org/iplass/mtp/web/template/report/definition/JasperReportType.java index 9b3d510a41..3a56e6b392 100644 --- a/iplass-web/src/main/java/org/iplass/mtp/web/template/report/definition/JasperReportType.java +++ b/iplass-web/src/main/java/org/iplass/mtp/web/template/report/definition/JasperReportType.java @@ -44,6 +44,9 @@ public class JasperReportType extends ReportType { /** パスワードAttribute名 */ private String passwordAttributeName; + /** オーナーパスワードAttribute名 */ + private String ownerPasswordAttributeName; + public ReportParamMapDefinition[] getParamMap() { return paramMap; } @@ -68,4 +71,12 @@ public void setPasswordAttributeName(String passwordAttributeName) { this.passwordAttributeName = passwordAttributeName; } + public String getOwnerPasswordAttributeName() { + return ownerPasswordAttributeName; + } + + public void setOwnerPasswordAttributeName(String ownerPasswordAttributeName) { + this.ownerPasswordAttributeName = ownerPasswordAttributeName; + } + }