Compare commits

...

40 Commits

Author SHA1 Message Date
hwang
89fd17b3d9 bugfix(TUP-27199):DB version of sybase isn't hide for other database on
tCreateTable
2020-05-20 10:38:47 +08:00
hwang-talend
c7840f1a20 bugfix(TUP-26002):Reject Schema is original schema, not changed schema (#4688)
bugfix(TUP-26002):Reject Schema is original schema, not changed schema
2020-05-18 14:16:03 +08:00
hwang-talend
332c9a18fd Hwang/tup 27199 (#4692)
* bugfix(TUP-27199):DB version of sybase isn't hide for other database on
tCreateTable
2020-05-18 13:58:01 +08:00
Dmytro Grygorenko
ea4e9bff8f Fix(TDI-30698): Remove lines of spaces between elements in output XML. (#4662) 2020-05-15 08:19:03 +03:00
Liu Xinquan
509e67a0b7 feat(TDQ-17831) update tPersonator component with new fields IPAddress (#4607) 2020-05-15 11:12:33 +08:00
AlixMetivier
a22e7ad636 fix(TBD-10454): with TMC strip timestamp to get hadoop conf (#4679) 2020-05-14 15:25:26 +02:00
Roman
ac75c43746 fix(TDI-43812): filemask not supported by tFTPRename (#4680) 2020-05-13 11:10:56 +03:00
wang wei
ae252dd4a8 fix(TDI-44159): Data viewer on tSybaseInput get error in context model with sybase 16 anywhere database(#4661) 2020-05-12 18:16:48 +08:00
wang wei
317fb772f4 fix(TDI-44066): Illegal argument exception in tsapbapi name field (#4668) 2020-05-12 17:49:05 +08:00
bhe-talendbj
23e42e1582 fix(TUP-27053): fix junit test case (#4676) 2020-05-12 16:20:39 +08:00
hcyi
1b6a75cc1c fix(TUP-27000):Talend Salesforce Einstein connector Repository (#4670)
connection issue in Talend 7.3
2020-05-12 11:57:50 +08:00
bhe-talendbj
d7214bc773 fix(TUP-27053): fix job starting script error and job startup without jvm arguments (#4669) 2020-05-12 10:59:08 +08:00
Richard Lecomte
932018e5b6 TDI-43935 : MsSQLRow NString type for prepared statement (#4651) 2020-05-11 08:16:33 +02:00
Zhiwei Xue
0316d58506 fix(TUP-26961):When save/delete a test case, it might break the poms/CI (#4656) 2020-05-11 11:34:18 +08:00
hwang-talend
6792be333d bugfix(TUP-26958):Test case: possible to remove input / output node (#4633)
bugfix(TUP-26958):Test case: possible to remove input / output node
2020-05-09 10:53:39 +08:00
jiezhang-tlnd
d7164d8192 fix(TUP-27066)test failed in "Expression Builder" dialog (#4665)
* fix(TUP-27066)test failed in "Expression Builder" dialog
https://jira.talendforge.org/browse/TUP-27066

* fix(TUP-27066)test failed in "Expression Builder" dialog
2020-05-08 18:56:26 +08:00
hwang-talend
4974e6d78e bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of (#4639)
* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE

* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE

* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE
2020-05-07 11:21:20 +08:00
Dmytro Sylaiev
c6be47597a fix(TDI-44074): Fix performance for date mssql (#4638) 2020-05-06 14:41:46 +03:00
OleksiiNimych
fcf9867ccb fix(TDI-44093): Fix processing of quoted strings (#4647)
* fix(TDI-44093): Fix processing of quoted strings

* fix(TDI-44093): Refactoring to improve readability
2020-05-06 12:53:40 +03:00
AlixMetivier
a0b1ab7b0f fix(TBD-10048): add option to change or not application's name (#4581)
* fix(TBD-10048): add option to change or not application's name

* Update tHiveRow_messages.properties
2020-05-04 09:55:36 +02:00
pyzhou
bead79ecd1 fix(TDI-44130):move log to finally (#4652) 2020-04-30 17:26:55 +08:00
Jane Ding
a2c7989d5a fix(TUP-26639):Talend Cloud studio Issue -Changes to Context Parameter (#4653)
Names is not reflected on the Connection for Snowflake
https://jira.talendforge.org/browse/TUP-26639
2020-04-30 09:54:41 +08:00
hcyi
6fa19a70e9 fix(TUP-26939:Tmap shows null values when using Expression Builder. (#4632) 2020-04-28 11:15:07 +08:00
hcyi
3ceedb58be fix(TUP-26683): Inputs label in documentation not the same as (#4641)
FlowDiagram
2020-04-28 11:12:06 +08:00
vyu-talend
3e61041565 Vyu/tdi 43756 fix bug in sqsclient (#4648)
* feat(TDI-43756):extends STS AssumeRole fields.

* feat(TDI-43756):extends AssumeRole fields(v2).

* feat(TDI-43756):set Session duration not required.

* feat(TDI-43756):

* feat(TDI-43756):extends fields for SQS

* feat(TDI-43756):fix the mistakes.

* feat(TDI-43756):extends fields for tAmazonEMRXXX,tAamzonRedshiftManage.

* feat(TDI-43756):optimize code.

* feat(TDI-43756):retrieve changes on S3connection.xml

* feat(TDI-43756):fix duplicated variables.

* feat(TDI-43756):fix same error

* feat(TDI-43756):optimize codes.

* feat(TDI-43756):use default region(US_WEST_2) for sts.

* feat(TDI-43756):change default to US-EAST-1.

* feat(TDI-43756):fix bug in SQSClient.

* feat(TDI-43756):fix bug in CredentialsProvider.
2020-04-27 21:38:11 +08:00
vyu-talend
1eaee7c556 Fix(TDI-35027):improve the log when loading data from file. (#4332)
* Fix(TDI-35027):This is a demo.

* fix(TDI-35027):optimize codes.

* fix(TDI-35027):add try/catch.
2020-04-27 15:46:29 +08:00
vyu-talend
0f13728bd8 feat(TDI-43756):extends STS AssumeRole fields for S3. (#4547)
* feat(TDI-43756):extends STS AssumeRole fields.

* feat(TDI-43756):extends AssumeRole fields(v2).

* feat(TDI-43756):set Session duration not required.

* feat(TDI-43756):

* feat(TDI-43756):extends fields for SQS

* feat(TDI-43756):fix the mistakes.

* feat(TDI-43756):extends fields for tAmazonEMRXXX,tAamzonRedshiftManage.

* feat(TDI-43756):optimize code.

* feat(TDI-43756):retrieve changes on S3connection.xml

* feat(TDI-43756):fix duplicated variables.

* feat(TDI-43756):fix same error

* feat(TDI-43756):optimize codes.

* feat(TDI-43756):use default region(US_WEST_2) for sts.

* feat(TDI-43756):change default to US-EAST-1.
2020-04-27 15:28:10 +08:00
Roman
94db7713dc feat(TDI-37016): Add dynamic support for tVerticaBulkExec (#4484) 2020-04-27 10:09:58 +03:00
Jane Ding
8bd229860d fix(TUP-26639):Talend Cloud studio Issues - Group context and (#4634)
* fix(TUP-26639):Talend Cloud studio Issues - Group context and
connections
https://jira.talendforge.org/browse/TUP-26639

* fix(TUP-26639):Talend Cloud studio Issues - Group context and
connections
https://jira.talendforge.org/browse/TUP-26639
2020-04-27 10:19:39 +08:00
OleksiiNimych
a4a96f3863 fix(TDI-44010): Fix adding NBLine to globalMap (#4630) 2020-04-24 09:49:14 +03:00
Zhiwei Xue
330d706722 fix(TUP-26809):Job zip should not contain jars from testcase only (#4635) 2020-04-23 18:49:25 +08:00
Emmanuel GALLOIS
9c2f08ec2b feat(TCOMP-1681): manage tacokit components in OSGi/Microservice job export (#4617)
* feat(TCOMP-1681): OSGi export

* feat(TCOMP-1681): OSGi export

* feat(TCOMP-1681): add REPLACE_EXISTING option for plugins.properties

* feat(TCOMP-1681): fix resource filtering

* feat(TCOMP-1681): add new resources to assembly for OSGi

* feat(TCOMP-1681): fix missing deps in microservice export

- some refactorings
- now we add the dep jars from TALEND-INF/dependencies.txt to MAVEN-INF

* feat(TCOMP-1681): add TaCoKit dependency service

* feat(TCOMP-1681): chore export dependency exporter

* feat(TCOMP-1681): add TaCoKit dependency service

- refactor and cleanup code

* feat(TCOMP-1681): class isolation

- refactor and cleanup code
2020-04-23 14:53:03 +08:00
hwang-talend
d7651ea0f4 bugfix(TUP-26796):Error "Can't find filed of null" show in error log (#4627)
bugfix(TUP-26796):Error "Can't find filed of null" show in error log when switch back from Jobscript to Designer
2020-04-23 09:59:44 +08:00
Laurent BOURGEOIS
b97a10e28f fix(TBD-10285):Add contains predicate to expressions (#4613) 2020-04-22 17:40:44 +02:00
pyzhou
c9b43d7c67 fix(TDI-44051):add the real value to the db name (#4621)
* fix(TDI-44051):add the real value to the db name

* set dbName as name when db column is null

* workaround

* change back name
2020-04-22 17:38:31 +08:00
Dmytro Sylaiev
87d3fd7c7d Dsylaiev/tdi 43931 pass full date to independand child job (#4622)
* fix(TDI-43931): Convert long as date from context args

* fix(TDI-43931): Update file root to be up to date

* fix(TDI-43931): Implement fix for tRunJob

* fix(TDI-43931): Mention string parse exception in log warn
2020-04-22 12:03:20 +03:00
sbovsunovskyi
0fecec9635 fix(TDI-44070): Unable to execute the job, receiving "Failed to gener… (#4625)
* fix(TDI-44070): Unable to execute the job, receiving "Failed to generate code." when using tAmazonRedshiftManage component.

* fix(TDI-44070): Unable to execute the job, receiving "Failed to generate code." when using tAmazonRedshiftManage component.
2020-04-21 11:23:21 +03:00
jiezhang-tlnd
f3ff8ec816 CreateTable component should use given connection (#4521)
* CreateTable component should use given connection

* fix(TUP-23956)CreateTable component should not to use JDBC connection

* fix(TUP-23956)CreateTable component should not to use JDBC connection

* fix some metadata connection could not select tCreateTable when drag and
drop

* fix(TUP-23956)CreateTable component should not to use JDBC connection
2020-04-20 09:07:36 +08:00
Dmytro Grygorenko
ba265bc05d Fix(TDI-31598): Don't add "connection" into globalMap for all dbConnection components - always duplicate. (#4513)
* Fix(TDI-31598): Surrounded by "if" clause to avoid duplicate insertion.

* Fix(TDI-31598): experimental - don't put connection into map (always duplicate?)

* Removed excessive connection addition from all sql db components.

* Experimental: if clause.

* Added globalMap.put(conn) into HelpClass.

* Fix(TDI-31598): Added connection entry for tOracle and tAmazonOracle components

* Fix(TDI-31598): Fixing PR
2020-04-17 16:05:27 +03:00
Dmytro Sylaiev
4800bd01cf Dsylaiev/tdi 39575 active directory for mssql (#4584)
* feat(TDI-39575): Add AD auth support for AzureSynapse

* feat(TDI-39575): Add AD Auth support for MsSQL components

* feat(TDI-39575): Provide AD feature for tCreateTable
2020-04-16 15:05:29 +03:00
198 changed files with 6726 additions and 1100 deletions

View File

@@ -665,34 +665,39 @@
<%
} else if(typeToGenerate.equals("java.util.Date")) {
%>
try{
String context_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
if (context_<%=ctxParam.getName()%>_value == null){
context_<%=ctxParam.getName()%>_value = "";
}
int context_<%=ctxParam.getName()%>_pos = context_<%=ctxParam.getName()%>_value.indexOf(";");
String context_<%=ctxParam.getName()%>_pattern = "yyyy-MM-dd HH:mm:ss";
if(context_<%=ctxParam.getName()%>_pos > -1){
context_<%=ctxParam.getName()%>_pattern = context_<%=ctxParam.getName()%>_value.substring(0, context_<%=ctxParam.getName()%>_pos);
context_<%=ctxParam.getName()%>_value = context_<%=ctxParam.getName()%>_value.substring(context_<%=ctxParam.getName()%>_pos + 1);
}
try{
if (context_<%=ctxParam.getName()%>_value == null){
context_<%=ctxParam.getName()%>_value = "";
}
int context_<%=ctxParam.getName()%>_pos = context_<%=ctxParam.getName()%>_value.indexOf(";");
String context_<%=ctxParam.getName()%>_pattern = "yyyy-MM-dd HH:mm:ss";
if(context_<%=ctxParam.getName()%>_pos > -1){
context_<%=ctxParam.getName()%>_pattern = context_<%=ctxParam.getName()%>_value.substring(0, context_<%=ctxParam.getName()%>_pos);
context_<%=ctxParam.getName()%>_value = context_<%=ctxParam.getName()%>_value.substring(context_<%=ctxParam.getName()%>_pos + 1);
}
context.<%=ctxParam.getName()%>=(java.util.Date)(new java.text.SimpleDateFormat(context_<%=ctxParam.getName()%>_pattern).parse(context_<%=ctxParam.getName()%>_value));
context.<%=ctxParam.getName()%>=(java.util.Date)(new java.text.SimpleDateFormat(context_<%=ctxParam.getName()%>_pattern).parse(context_<%=ctxParam.getName()%>_value));
} catch(ParseException e) {
} catch(ParseException e) {
try { <% /*try to check if date passed as long also*/ %>
long context_<%=ctxParam.getName()%>_longValue = Long.valueOf(context_<%=ctxParam.getName()%>_value);
context.<%=ctxParam.getName()%> = new java.util.Date(context_<%=ctxParam.getName()%>_longValue);
} catch (NumberFormatException cantParseToLongException) {
<%
if (isLog4jEnabled) {
if (isLog4jEnabled) {
%>
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
log.warn(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", "Can't parse date string: " + e.getMessage() + " and long: " + cantParseToLongException.getMessage()));
<%
} else {
} else {
%>
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", e.getMessage()));
System.err.println(String.format("<%=warningMessageFormat %>", "<%=ctxParam.getName() %>", "Can't parse date string: " + e.getMessage() + " and long: " + cantParseToLongException.getMessage()));
<%
}
%>
context.<%=ctxParam.getName()%>=null;
}
}
%>
context.<%=ctxParam.getName()%>=null;
}
<%
} else if(typeToGenerate.equals("Object")||typeToGenerate.equals("String")||typeToGenerate.equals("java.lang.String")) {
%>

View File

@@ -62,6 +62,8 @@ class IndexedRecordToRowStructGenerator {
%>
boolean <%=codeVarIsDynamicInitialized%> = false;
routines.system.Dynamic <%=codeVarDynamic%> = new routines.system.Dynamic();
//Workaround for TDI-44051, TcimpV0 do not need DbmsID
<%=codeVarDynamic%>.setDbmsId("<%=cid%>");
<%
}
@@ -115,10 +117,11 @@ class IndexedRecordToRowStructGenerator {
for (org.apache.avro.Schema.Field dynamicField_<%=cid%> : dynSchema_<%=cid%>.getFields()){
routines.system.DynamicMetadata dynamicMetadata_<%=cid%> = new routines.system.DynamicMetadata();
org.apache.avro.Schema dynamicFieldSchema_<%=cid%> = dynamicField_<%=cid%>.schema();
String dbName = dynamicField_<%=cid%>.getProp("talend.field.dbColumnName");
// set name
dynamicMetadata_<%=cid%>.setName(dynamicField_<%=cid%>.name());
// set db name
dynamicMetadata_<%=cid%>.setDbName(dynamicField_<%=cid%>.name());
dynamicMetadata_<%=cid%>.setDbName(dbName==null?dynamicField_<%=cid%>.name():dbName);
// set nullable
if (org.talend.daikon.avro.AvroUtils.isNullable(dynamicFieldSchema_<%=cid%>)) {
dynamicMetadata_<%=cid%>.setNullable(true);

View File

@@ -4,7 +4,7 @@
<groupId>org.talend.components.lib</groupId>
<artifactId>talendsap</artifactId>
<name>talendsap</name>
<version>1.0.2</version>
<version>1.0.3</version>
<properties>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
@@ -35,9 +35,15 @@
<dependencies>
<dependency>
<groupId>dom4j</groupId>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>

View File

@@ -16,21 +16,11 @@ public class DocumentExtractor {
public DocumentExtractor(Document doc,String function) {
this.doc = doc;
this.finalFunction = replaceNamespace(function);
this.finalFunction = SAPXMLCoder.encode(function);
}
/**
* the xml document which come from the cimt sap api will change the element name which contains "/" and convert "/" to "_-",
* we need to do the same thing for finding the element by the xpath
* @param name
* @return
*/
private String replaceNamespace(String name) {
return name.replace("/", "_-");
}
public String getSingleResult(String name) {
final String finalName = replaceNamespace(name);
final String finalName = SAPXMLCoder.encode(name);
XPath xpath = org.dom4j.DocumentHelper.createXPath(
sb.append("/").append(finalFunction).append("/OUTPUT/").append(finalName)
@@ -47,7 +37,7 @@ public class DocumentExtractor {
}
public List<String> getStructureResult(String structureName,List<String> names) {
final String finalStructureName = replaceNamespace(structureName);
final String finalStructureName = SAPXMLCoder.encode(structureName);
XPath xpath = org.dom4j.DocumentHelper.createXPath(
sb.append("/").append(finalFunction).append("/OUTPUT/").append(finalStructureName)
@@ -65,7 +55,7 @@ public class DocumentExtractor {
List<String> result = new ArrayList<String>();
for(String name : names) {
final String finalName = replaceNamespace(name);
final String finalName = SAPXMLCoder.encode(name);
Node subNode = node.selectSingleNode(finalName);
if(subNode == null) {
result.add(null);
@@ -78,7 +68,7 @@ public class DocumentExtractor {
}
public List<List<String>> getTableResult(String tableName,List<String> names) {
final String finalTableName = replaceNamespace(tableName);
final String finalTableName = SAPXMLCoder.encode(tableName);
List<List<String>> result = new ArrayList<List<String>>();
@@ -112,7 +102,7 @@ public class DocumentExtractor {
for(Element element : elements) {
List<String> row = new ArrayList<String>();
for(String name : names) {
final String finalName = replaceNamespace(name);
final String finalName = SAPXMLCoder.encode(name);
Element subElement = element.element(finalName);
if(subElement == null) {
row.add(null);

View File

@@ -28,7 +28,7 @@ public class DocumentHelper {
}
public void setFunctionName(String name) {
root = doc.addElement(name);
root = doc.addElement(SAPXMLCoder.encode(name));
}
private void correctInput() {
@@ -55,20 +55,20 @@ public class DocumentHelper {
}
if (parameter_type == SAPParameterType.CHANGING) {
correctChanging();
changing.addElement(name).setText(value);
changing.addElement(SAPXMLCoder.encode(name)).setText(value);
} else {
correctInput();
input.addElement(name).setText(value);
input.addElement(SAPXMLCoder.encode(name)).setText(value);
}
}
public void addStructParameter(String name, SAPParameterType parameter_type) {
if (parameter_type == SAPParameterType.CHANGING) {
correctChanging();
currentStruct = changing.addElement(name);
currentStruct = changing.addElement(SAPXMLCoder.encode(name));
} else {
correctInput();
currentStruct = input.addElement(name);
currentStruct = input.addElement(SAPXMLCoder.encode(name));
}
}
@@ -76,19 +76,19 @@ public class DocumentHelper {
if(value == null) {
value = "";
}
currentStruct.addElement(name).setText(value);
currentStruct.addElement(SAPXMLCoder.encode(name)).setText(value);
}
public void addTableParameter(String name, SAPParameterType parameter_type) {
if (parameter_type == SAPParameterType.CHANGING) {
correctChanging();
currentTable = changing.addElement(name);
currentTable = changing.addElement(SAPXMLCoder.encode(name));
} else if(parameter_type == SAPParameterType.TABLES) {
correctTables();
currentTable = tables.addElement(name);
currentTable = tables.addElement(SAPXMLCoder.encode(name));
} else {
correctInput();
currentTable = input.addElement(name);
currentTable = input.addElement(SAPXMLCoder.encode(name));
}
}
@@ -100,66 +100,11 @@ public class DocumentHelper {
if(value == null) {
value = "";
}
currentRow.addElement(name).setText(value);
currentRow.addElement(SAPXMLCoder.encode(name)).setText(value);
}
public Document getDocument() {
return doc;
}
public static void main(String[] args) throws IOException {
DocumentHelper helper = new DocumentHelper();
helper.setFunctionName("READ_TABLE_FUNCTION");
helper.addSingleParameter("ID", "1", SAPParameterType.CHANGING);
helper.addSingleParameter("NAME", "gaoyan", SAPParameterType.IMPORT);
helper.addStructParameter("INFO", SAPParameterType.CHANGING);
helper.addStructChildParameter("ID", "2");
helper.addStructChildParameter("NAME", "wangwei");
helper.addStructParameter("INFO1", SAPParameterType.IMPORT);
helper.addStructChildParameter("ID1", "4");
helper.addStructChildParameter("NAME1", "momo");
helper.addTableParameter("TABLE1", SAPParameterType.TABLES);
for (int i = 0; i < 200000; i++) {
helper.addTableRow();
helper.addTableRowChildParameter("c1", i + "");
helper.addTableRowChildParameter("c2", "wangwei" + i);
helper.addTableRowChildParameter("c3", "wangwei" + i);
helper.addTableRowChildParameter("c4", "wangwei" + i);
helper.addTableRowChildParameter("c5", "wangwei" + i);
helper.addTableRowChildParameter("c6", "wangwei" + i);
helper.addTableRowChildParameter("c7", "wangwei" + i);
helper.addTableRowChildParameter("c8", "wangwei" + i);
}
helper.addTableParameter("TABLE2", SAPParameterType.TABLES);
for (int i = 0; i < 2; i++) {
helper.addTableRow();
helper.addTableRowChildParameter("ID4", i + "");
helper.addTableRowChildParameter("NAME4", "gaoyan" + i);
}
// StringWriter sw = new StringWriter();
// OutputFormat format = OutputFormat.createPrettyPrint();
// XMLWriter writer = new XMLWriter(sw, format);
Document doc = helper.getDocument();
// writer.write(doc);
// System.out.println(sw.toString());
DocumentExtractor ext = new DocumentExtractor(doc,"READ_TABLE_FUNCTION");
String single = ext.getSingleResult("ID");
System.out.println(single);
List<String> struct = ext.getStructureResult("INFO", Arrays.asList("ID","NAME"));
System.out.println(struct);
List<List<String>> table = ext.getTableResult("TABLE1", Arrays.asList("c1","c2","c3","c4","c5","c6","c7","c8"));
for(List<String> row : table) {
System.out.println(row);
}
}
}

View File

@@ -0,0 +1,124 @@
package org.talend.sap;
/**
* sap <-> valid xml element name by coder
*
* first char :
* 0 <-> _0
* 1 <-> _1
* 2 <-> _2
* ...
* 9 <-> _9
*
* any location char
* / <-> _-
*/
public class SAPXMLCoder {
/**
* convert sapname to xmlname
* @param sapname
* @return
*/
public static String encode(String sapname) {
if(sapname == null) {
return sapname;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<sapname.length();i++) {
char c = sapname.charAt(i);
if(i==0) {
if(isDigit(c)) {
sb.append('_').append(c);
} else if(c == '/'){
sb.append("_-");
} else {
sb.append(c);
}
} else {
if(c == '/'){
sb.append("_-");
} else {
sb.append(c);
}
}
}
return sb.toString();
}
/**
* convert xmlname to sapname
* @param xmlname
* @return
*/
static String decode(String xmlname) {
if(xmlname == null) {
return xmlname;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<xmlname.length();i++) {
char c = xmlname.charAt(i);
if(i==0) {
if(c == '_') {
int next_index = i + 1;
if(next_index < xmlname.length()) {
char next = xmlname.charAt(next_index);
if(isDigit(next)) {
sb.append(next);
i++;
} else if(next == '-') {
sb.append('/');
i++;
} else {
sb.append(c);
}
} else {
sb.append(c);
}
} else {
sb.append(c);
}
} else {
if(c == '_') {
int next_index = i + 1;
if(next_index < xmlname.length()) {
char next = xmlname.charAt(next_index);
if(next == '-') {
sb.append('/');
i++;
} else {
sb.append(c);
}
} else {
sb.append(c);
}
} else {
sb.append(c);
}
}
}
return sb.toString();
}
private static boolean isDigit(char c) {
return c>=48 && c<=57;
}
public static void main(String[] args) {
//ecnode
System.out.println(encode("/CMT/TLND_TABLE"));
System.out.println(encode("0CMT0TLND_TABLE"));
System.out.println(encode("1CMT1TLND_TABLE"));
//decode
System.out.println(decode(encode("/CMT/TLND_TABLE")));
System.out.println(decode(encode("0CMT0TLND_TABLE")));
System.out.println(decode(encode("1CMT1TLND_TABLE")));
}
}

View File

@@ -0,0 +1,75 @@
package org.talend.sap;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import org.dom4j.Document;
import org.junit.Test;
public class BasicTest {
@Test
public void testSAPXMLCoder() {
assertEquals("_-CMT_-TLND_TABLE", SAPXMLCoder.encode("/CMT/TLND_TABLE"));
assertEquals("_0CMT0TLND_TABLE", SAPXMLCoder.encode("0CMT0TLND_TABLE"));
assertEquals("/CMT/TLND_TABLE", SAPXMLCoder.decode(SAPXMLCoder.encode("/CMT/TLND_TABLE")));
assertEquals("0CMT0TLND_TABLE", SAPXMLCoder.decode(SAPXMLCoder.encode("0CMT0TLND_TABLE")));
assertEquals("BAPI_MATERIAL_GET_ALL", SAPXMLCoder.decode(SAPXMLCoder.encode("BAPI_MATERIAL_GET_ALL")));
assertEquals("2STEP_PICK", SAPXMLCoder.decode(SAPXMLCoder.encode("2STEP_PICK")));
}
@Test
public void testDocumentHelperAndExtractor() {
DocumentHelper helper = new DocumentHelper();
String function = "/CMT/TLND_TABLE";
helper.setFunctionName(function);
helper.addSingleParameter("ID", "1", SAPParameterType.CHANGING);
helper.addSingleParameter("NAME", "gaoyan", SAPParameterType.IMPORT);
helper.addStructParameter("INFO", SAPParameterType.CHANGING);
helper.addStructChildParameter("ID", "2");
helper.addStructChildParameter("NAME", "wangwei");
helper.addStructParameter("INFO1", SAPParameterType.IMPORT);
helper.addStructChildParameter("ID1", "4");
helper.addStructChildParameter("NAME1", "momo");
helper.addTableParameter("TABLE1", SAPParameterType.TABLES);
for (int i = 0; i < 10; i++) {
helper.addTableRow();
helper.addTableRowChildParameter("c1", i + "");
helper.addTableRowChildParameter("c2", "wangwei" + i);
helper.addTableRowChildParameter("c3", "wangwei" + i);
helper.addTableRowChildParameter("c4", "wangwei" + i);
helper.addTableRowChildParameter("c5", "wangwei" + i);
helper.addTableRowChildParameter("c6", "wangwei" + i);
helper.addTableRowChildParameter("c7", "wangwei" + i);
helper.addTableRowChildParameter("c8", "wangwei" + i);
}
helper.addTableParameter("TABLE2", SAPParameterType.TABLES);
for (int i = 0; i < 2; i++) {
helper.addTableRow();
helper.addTableRowChildParameter("ID4", i + "");
helper.addTableRowChildParameter("NAME4", "gaoyan" + i);
}
Document doc = helper.getDocument();
DocumentExtractor ext = new DocumentExtractor(doc,function);
String single = ext.getSingleResult("ID");
assertEquals("1", single);
List<String> struct = ext.getStructureResult("INFO", Arrays.asList("ID","NAME"));
assertEquals(java.util.Arrays.asList("2", "wangwei"), struct);
List<List<String>> table = ext.getTableResult("TABLE1", Arrays.asList("c1","c2","c3","c4","c5","c6","c7","c8"));
assertEquals(10, table.size());
}
}

View File

@@ -35,5 +35,4 @@ imports="
<%//----------------------------component codes-----------------------------------------%>
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -105,6 +105,7 @@ if(currentRowCount_<%=cid %> > 0){
}
%>
nestXMLTool_<%=cid%>.replaceDefaultNameSpace(doc_<%=cid%>.getRootElement());
nestXMLTool_<%=cid%>.removeWhiteSpaceTextNode(doc_<%=cid %>.getRootElement());
<%
if(!("true").equals(outputAsXSD) && !("true").equals(allowEmpty)){
%>

View File

@@ -58,7 +58,7 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15" REQUIRED="true"
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15"
SHOW_IF="ASSUME_ROLE == 'true'"
GROUP="AUTHENTICATION">
<DEFAULT>15</DEFAULT>
@@ -105,15 +105,125 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="SET_STS_ENDPOINT" FIELD="CHECK" NUM_ROW="1" REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="STS_ENDPOINT" FIELD="TEXT" NUM_ROW="1" REQUIRED="true"
SHOW_IF="(ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="1"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="1"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="2"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="3"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="4"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="6"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="7"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="8"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>

View File

@@ -52,5 +52,38 @@ ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -58,7 +58,7 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15" REQUIRED="true"
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15"
SHOW_IF="ASSUME_ROLE == 'true'"
GROUP="AUTHENTICATION">
<DEFAULT>15</DEFAULT>
@@ -259,47 +259,157 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="SET_STS_ENDPOINT" FIELD="CHECK" NUM_ROW="1" REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="STS_ENDPOINT" FIELD="TEXT" NUM_ROW="1" REQUIRED="true"
SHOW_IF="(ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="1"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="1"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="2"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="3"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="4"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="6"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="7"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="8"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WAIT_FOR_CLUSTER_READY" FIELD="CHECK"
NUM_ROW="2" SHOW_IF="(ACTION=='START')" GROUP="ADVANCED_CONFIGURATION">
NUM_ROW="10" SHOW_IF="(ACTION=='START')" GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="VISIBLE_TO_ALL_USERS" FIELD="CHECK"
NUM_ROW="5" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
NUM_ROW="15" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="TERMINATION_PROTECTED" FIELD="CHECK"
NUM_ROW="5" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
NUM_ROW="20" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ENABLE_DEBUG" FIELD="CHECK"
NUM_ROW="7" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
NUM_ROW="25" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="USE_CUSTOMIZE_VERSION" FIELD="CHECK"
NUM_ROW="10" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
NUM_ROW="30" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="CUSTOMIZE_VERSION" FIELD="TEXT"
NUM_ROW="12" SHOW_IF="(ACTION=='START') AND (USE_CUSTOMIZE_VERSION =='true')" GROUP="CUSTOMIZE_APPLICATION_GROUP">
NUM_ROW="35" SHOW_IF="(ACTION=='START') AND (USE_CUSTOMIZE_VERSION =='true')" GROUP="CUSTOMIZE_APPLICATION_GROUP">
<DEFAULT>"emr-5.15.0"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="CUSTOMIZE_APPLICATION_TABLE" FIELD="TABLE" NUM_ROW="13" NB_LINES="5" GROUP="CUSTOMIZE_APPLICATION_GROUP"
<PARAMETER NAME="CUSTOMIZE_APPLICATION_TABLE" FIELD="TABLE" NUM_ROW="40" NB_LINES="5" GROUP="CUSTOMIZE_APPLICATION_GROUP"
SHOW_IF="(ACTION=='START') AND (USE_CUSTOMIZE_VERSION =='true')">
<ITEMS>
<ITEM NAME="NAME" FIELD="OPENED_LIST">
@@ -334,51 +444,51 @@
</PARAMETER>
<PARAMETER NAME="SUBNET_ID" FIELD="TEXT"
NUM_ROW="17" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
NUM_ROW="45" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="AVAILABILITY_ZONE" FIELD="TEXT"
NUM_ROW="18" SHOW_IF="(ACTION=='START')" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
NUM_ROW="50" SHOW_IF="(ACTION=='START')" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="MASTER_SECURITY_GROUP" FIELD="TEXT"
REQUIRED="true" NUM_ROW="19" SHOW_IF="ACTION=='START'"
REQUIRED="true" NUM_ROW="55" SHOW_IF="ACTION=='START'"
GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ADDITIONAL_MASTER_SECURITY_GROUPS" FIELD="TEXT"
REQUIRED="true" NUM_ROW="19" SHOW_IF="ACTION=='START'"
REQUIRED="true" NUM_ROW="55" SHOW_IF="ACTION=='START'"
GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SLAVE_SECURITY_GROUP" FIELD="TEXT"
REQUIRED="true" NUM_ROW="20" SHOW_IF="ACTION=='START'"
REQUIRED="true" NUM_ROW="60" SHOW_IF="ACTION=='START'"
GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ADDITIONAL_SLAVE_SECURITY_GROUPS" FIELD="TEXT"
REQUIRED="true" NUM_ROW="20" SHOW_IF="ACTION=='START'"
REQUIRED="true" NUM_ROW="60" SHOW_IF="ACTION=='START'"
GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" REQUIRED="true"
NUM_ROW="30" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
NUM_ROW="65" SHOW_IF="ACTION=='START'" GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>Additional groups should be set like this : "gname1,gname2,gname3"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SERVICE_ACCESS_SECURITY_GROUP" FIELD="TEXT"
REQUIRED="true" NUM_ROW="31" SHOW_IF="ACTION=='START'"
REQUIRED="true" NUM_ROW="70" SHOW_IF="ACTION=='START'"
GROUP="ADVANCED_INSTANCE_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="BOOTSTRAP_ACTIONS" FIELD="TABLE" SHOW_IF="ACTION=='START'" NUM_ROW="32" NB_LINES="5" GROUP="BOOTSTRAP_GROUP">
<PARAMETER NAME="BOOTSTRAP_ACTIONS" FIELD="TABLE" SHOW_IF="ACTION=='START'" NUM_ROW="75" NB_LINES="5" GROUP="BOOTSTRAP_GROUP">
<ITEMS>
<ITEM NAME="NAME" />
<ITEM NAME="SCRIPT_PATH" />
@@ -386,7 +496,7 @@
</ITEMS>
</PARAMETER>
<PARAMETER NAME="STEP_TABLE" FIELD="TABLE" SHOW_IF="ACTION=='START'" NUM_ROW="35" NB_LINES="5" GROUP="STEPS">
<PARAMETER NAME="STEP_TABLE" FIELD="TABLE" SHOW_IF="ACTION=='START'" NUM_ROW="80" NB_LINES="5" GROUP="STEPS">
<ITEMS>
<ITEM NAME="NAME" />
<ITEM NAME="ACTION_ON_FAILURE" FIELD="CLOSED_LIST">
@@ -402,15 +512,15 @@
</ITEMS>
</PARAMETER>
<PARAMETER NAME="KEEP_ALIVE" FIELD="CHECK"
NUM_ROW="36" SHOW_IF="ACTION=='START'" GROUP="STEPS">
NUM_ROW="85" SHOW_IF="ACTION=='START'" GROUP="STEPS">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WAIT_FOR_STEPS_COMPLETE" FIELD="CHECK"
NUM_ROW="37" SHOW_IF="ACTION=='START' AND isShow[WAIT_FOR_CLUSTER_READY] AND (WAIT_FOR_CLUSTER_READY=='true')" GROUP="STEPS">
NUM_ROW="90" SHOW_IF="ACTION=='START' AND isShow[WAIT_FOR_CLUSTER_READY] AND (WAIT_FOR_CLUSTER_READY=='true')" GROUP="STEPS">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PROPERTY_TABLE" FIELD="TABLE" NUM_ROW="40" NB_LINES="5" GROUP="PROPERTY_GROUP"
<PARAMETER NAME="PROPERTY_TABLE" FIELD="TABLE" NUM_ROW="95" NB_LINES="5" GROUP="PROPERTY_GROUP"
SHOW_IF="(ACTION=='START') AND (CLUSTER_VERSION!='AMI3_10_0') AND (CLUSTER_VERSION!='AMI3_9_0') AND (CLUSTER_VERSION!='AMI3_8_0') AND (CLUSTER_VERSION!='AMI2_4_11') AND (CLUSTER_VERSION!='AMI2_4_10')">
<ITEMS>
<ITEM NAME="CLASSIFICATION" />

View File

@@ -198,8 +198,41 @@ ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)
CUSTOMIZE_APPLICATION_GROUP.NAME=Customize Version and Application
USE_CUSTOMIZE_VERSION.NAME=Customize Version and Application

View File

@@ -58,7 +58,7 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15" REQUIRED="true"
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15"
SHOW_IF="ASSUME_ROLE == 'true'"
GROUP="AUTHENTICATION">
<DEFAULT>15</DEFAULT>
@@ -162,15 +162,125 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="SET_STS_ENDPOINT" FIELD="CHECK" NUM_ROW="1" REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="STS_ENDPOINT" FIELD="TEXT" NUM_ROW="1" REQUIRED="true"
SHOW_IF="(ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="1"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="1"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="2"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="3"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="4"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="6"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="7"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="8"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>

View File

@@ -94,5 +94,38 @@ ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -44,6 +44,4 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("db_<%=cid%>",<%=dbname%>);

View File

@@ -75,6 +75,7 @@ imports="
<%
}
%>
globalMap.put("conn_<%=cid%>", conn_<%=cid%>);
<%
}
@@ -132,7 +133,6 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);
globalMap.put("dbschema_" + "<%=cid%>", <%=dbschema%>);
globalMap.put("username_" + "<%=cid%>",<%=dbuser%>);
globalMap.put("password_" + "<%=cid%>",dbPwd_<%=cid%>);

View File

@@ -24,6 +24,9 @@
String user = ElementParameterParser.getValue(node, "__USER__");
String node_type = ElementParameterParser.getValue(node, "__NODE_TYPE__");
String node_count = ElementParameterParser.getValue(node, "__NODE_COUNT__");
if (node_count.isEmpty()) {
node_count = "1";
}
boolean isLog4jEnabled = "true".equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
@@ -88,52 +91,46 @@
.withMasterUsername(<%=user%>)
.withMasterUserPassword(decryptedPwd_<%=cid%>)
.withNodeType(<%=node_type%>)
.withNodeType(<%=node_type%>);
<%
if(new Integer(node_count) > 1){
%>
.withNumberOfNodes(<%=node_count%>)
<%
} else {
%>
.withClusterType("single-node")
<%
}
%>
//advanced settings
<%if(parameterUtil.isValid(parameter_group_name)) {%>
.withClusterParameterGroupName(<%=parameter_group_name%>)
<%}%>
<%if(parameterUtil.isValid(subnet_group_name)) {%>
.withClusterSubnetGroupName(<%=subnet_group_name%>)
if (<%=node_count%> > 1) {
request_<%=cid%> = request_<%=cid%>.withNumberOfNodes(<%=node_count%>);
} else {
request_<%=cid%> = request_<%=cid%>.withClusterType("single-node");
}
//advanced settings
<%if(parameterUtil.isValid(parameter_group_name)) {%>
request_<%=cid%> = request_<%=cid%>.withClusterParameterGroupName(<%=parameter_group_name%>);
<%}%>
<%if(parameterUtil.isValid(subnet_group_name)) {%>
request_<%=cid%> = request_<%=cid%>.withClusterSubnetGroupName(<%=subnet_group_name%>);
<%}%>
<%
if(publicly_accessible) {
%>
request_<%=cid%> = request_<%=cid%>.withPubliclyAccessible(true);
<%if(set_public_ip_address) {%>
request_<%=cid%> = request_<%=cid%>.withElasticIp(<%=elastic_ip%>);
<%}%>
<%
if(publicly_accessible) {
%>
.withPubliclyAccessible(true)
<%if(set_public_ip_address) {%>
.withElasticIp(<%=elastic_ip%>)
<%}%>
<%
} else {
%>
.withPubliclyAccessible(false)
<%
}
%>
<%if(parameterUtil.isValid(availability_zone)) {%>
.withAvailabilityZone(<%=availability_zone%>)
<%}%>
<%if(parameterUtil.isValid(vpc_security_groupids)) {%>
.withVpcSecurityGroupIds(<%=vpc_security_groupids%>.split(","))
<%}%>
;
<%
} else {
%>
request_<%=cid%> = request_<%=cid%>.withPubliclyAccessible(false);
<%
}
%>
<%if(parameterUtil.isValid(availability_zone)) {%>
request_<%=cid%> = request_<%=cid%>.withAvailabilityZone(<%=availability_zone%>);
<%}%>
<%if(parameterUtil.isValid(vpc_security_groupids)) {%>
request_<%=cid%> = request_<%=cid%>.withVpcSecurityGroupIds(<%=vpc_security_groupids%>.split(","));
<%}%>
com.amazonaws.services.redshift.model.Cluster result_<%=cid%> = client_<%=cid%>.createCluster(request_<%=cid%>);
<%if(isLog4jEnabled) {%>

View File

@@ -59,7 +59,7 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15" REQUIRED="true"
<PARAMETER NAME="SESSION_DURATION" FIELD="TEXT" NUM_ROW="15"
SHOW_IF="ASSUME_ROLE == 'true'"
GROUP="AUTHENTICATION">
<DEFAULT>15</DEFAULT>
@@ -153,31 +153,141 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="SET_STS_ENDPOINT" FIELD="CHECK" NUM_ROW="1" REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="STS_ENDPOINT" FIELD="TEXT" NUM_ROW="1" REQUIRED="true"
SHOW_IF="(ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="1"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="1"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="2"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="3"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="4"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="6"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="7"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="8"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="ASSUME_ROLE == 'true'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WAIT_FOR_CLUSTER_READY" FIELD="CHECK"
NUM_ROW="3"
NUM_ROW="9"
SHOW_IF="(ACTION=='CREATE_CLUSTER') OR (ACTION=='RESIZE_CLUSTER') OR (ACTION=='RESTORE_FROM_SNAPSHOT')"
GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ORIGINAL_CLUSTER_ID_OF_SNAPSHOT" FIELD="TEXT"
NUM_ROW="5"
NUM_ROW="10"
SHOW_IF="(ACTION=='RESTORE_FROM_SNAPSHOT') OR (ACTION=='DELETE_SNAPSHOT')"
GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PARAMETER_GROUP_NAME" FIELD="TEXT" NUM_ROW="10"
<PARAMETER NAME="PARAMETER_GROUP_NAME" FIELD="TEXT" NUM_ROW="11"
SHOW_IF="(ACTION=='CREATE_CLUSTER') OR (ACTION=='RESTORE_FROM_SNAPSHOT')"
GROUP="ADVANCED_CONFIGURATION">
<DEFAULT>""</DEFAULT>

View File

@@ -71,5 +71,38 @@ ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -81,7 +81,9 @@ skeleton="../templates/db_output_bulk.skeleton"
String compressionType = null;
String serdeMethod = ElementParameterParser.getValue(node,"__SERDE_METHOD__");
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
if (isCompress) {
if ("DELIMITED_TEXT".equals(loadFileFormat)) {
compressionType = ElementParameterParser.getValue(node,"__COMPRESSION_TEXT__");
@@ -243,6 +245,14 @@ skeleton="../templates/db_output_bulk.skeleton"
if (!"".equals(dbname_<%=cid%>)) {
url_<%=cid%> += ";database=" + <%=dbname%>;
}
<%
if (useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
<%
}
%>
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
dbUser_<%=cid %> = <%=dbuser%>;

View File

@@ -139,7 +139,11 @@
<PARAMETER NAME="ENABLE_SSL" FIELD="CHECK" NUM_ROW="1" GROUP="AZURE_CONNECTION" SHOW_IF="(AZURE_STORAGE == 'ADLS_GEN2')">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="2" SHOW_IF="USE_EXISTING_CONNECTION=='false'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="IMPORT_TYPE" FIELD="CLOSED_LIST" NUM_ROW="3" REQUIRED="true" GROUP="LOAD_DETAILS">
<ITEMS DEFAULT="DELIMITED_TEXT">
<ITEM NAME="DELIMITED_TEXT" VALUE="DELIMITED_TEXT" />
@@ -279,6 +283,14 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="DRIVER=='MSSQL_PROP'" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -102,4 +102,6 @@ USE_EXISTING_CONNECTION.NAME=Use an existing connection
USE_STRING_DELIMITER.NAME=Enclosed by
USE_TYPE_DEFAULT.ITEM.FALSE=False
USE_TYPE_DEFAULT.ITEM.TRUE=True
USE_TYPE_DEFAULT.NAME=Use type default
USE_TYPE_DEFAULT.NAME=Use type default
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -5,47 +5,54 @@ imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
"
%>
<%@ include file="../templates/DB/HelpClass/HelpClass.javajet"%>
<%@ include file="../templates/DB/HelpClass/HelpClass.javajet"%>
<%
class ConnectionUtil extends DefaultConnectionUtil{
public void createURL(INode node) {
super.createURL(node);
String driver = ElementParameterParser.getValue(node, "__DRIVER__");
class ConnectionUtil extends DefaultConnectionUtil{
public void createURL(INode node) {
super.createURL(node);
String driver = ElementParameterParser.getValue(node, "__DRIVER__");
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
<%
if(driver.equals("JTDS")) {
if(driver.equals("JTDS")) {
%>
String url_<%=cid %> = "jdbc:jtds:sqlserver://" + <%=dbhost%> ;
String url_<%=cid %> = "jdbc:jtds:sqlserver://" + <%=dbhost%> ;
<%
} else {
%>
String url_<%=cid %> = "jdbc:sqlserver://" + <%=dbhost%> ;
<%
}
} else {
%>
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
if (!"".equals(port_<%=cid%>)) {
url_<%=cid %> += ":" + <%=dbport%>;
}
if (!"".equals(dbname_<%=cid%>)) {
<%
if(driver.equals("JTDS")) {
%>
url_<%=cid%> += "//" + <%=dbname%>;
String url_<%=cid %> = "jdbc:sqlserver://" + <%=dbhost%> ;
<%
} else {
%>
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%
}
}
%>
}
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
<%
}
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
if (!"".equals(port_<%=cid%>)) {
url_<%=cid %> += ":" + <%=dbport%>;
}
if (!"".equals(dbname_<%=cid%>)) {
<%
if(driver.equals("JTDS")) {
%>
url_<%=cid%> += "//" + <%=dbname%>;
<%
} else {
%>
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%
}
%>
}
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
<%
if (useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
}
public String getDirverClassName(INode node){
String driver = ElementParameterParser.getValue(node, "__DRIVER__");
if(driver.equals("JTDS")) {
@@ -65,7 +72,5 @@ imports="
globalMap.put("dbschema_<%=cid%>", <%=dbschema%>);
globalMap.put("db_<%=cid%>", <%=dbname%>);
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("shareIdentitySetting_<%=cid%>", <%=ElementParameterParser.getValue(node, "__SHARE_IDENTITY_SETTING__")%>);

View File

@@ -188,6 +188,9 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="AUTO_COMMIT" FIELD="CHECK" NUM_ROW="10">
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -201,6 +204,14 @@
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="DRIVER=='MSSQL_PROP'" />
<IMPORT NAME="slf4j-api-1.7.25.jar" MODULE="slf4j-api-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="slf4j-log4j12-1.7.25.jar" MODULE="slf4j-log4j12-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -27,4 +27,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -13,15 +13,18 @@ imports="
"
%>
<%@ include file="../templates/DB/Input/HelpClass.javajet"%>
<%
class DBInputBeginUtil extends DefaultDBInputUtil{
private String driver;
private boolean useActiveDirectoryAuth = false;
public void beforeComponentProcess(INode node){
super.beforeComponentProcess(node);
cid = node.getUniqueName();
useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
org.talend.designer.components.util.mssql.MSSqlGenerateTimestampUtil mssqlGTU_<%=cid%> = org.talend.designer.components.util.mssql.MSSqlUtilFactory.getMSSqlGenerateTimestampUtil();
@@ -84,6 +87,14 @@ imports="
}
%>
}
<%
if (useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
String dbschema_<%=cid%> = <%=dbschema%>;
<%

View File

@@ -233,6 +233,10 @@
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="USE_EXISTING_CONNECTION=='false'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
@@ -258,8 +262,16 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -47,6 +47,8 @@ SPECIFY_DATASOURCE_ALIAS.NAME=Specify a data source alias
DATASOURCE.NAME=Data source
DATASOURCE_ALIAS.NAME=Data source alias
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft

View File

@@ -65,6 +65,8 @@ skeleton="../templates/db_output_bulk.skeleton"
String commitEvery = ElementParameterParser.getValue(node, "__COMMIT_EVERY__");
boolean identityInsert= "true".equals(ElementParameterParser.getValue(node, "__IDENTITY_INSERT__"));
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
boolean isEnableDebug = ("true").equals(ElementParameterParser.getValue(node,"__ENABLE_DEBUG_MODE__"));
boolean usingStatsLogs=cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB");
@@ -261,6 +263,14 @@ if(useExistingConnection) {
}
%>
}
<%
if (useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
dbUser_<%=cid %> = <%=dbuser%>;

View File

@@ -233,7 +233,9 @@
<PARAMETER NAME="PROPERTIES" FIELD="TEXT" NUM_ROW="4" REPOSITORY_VALUE="PROPERTIES_STRING" SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="USE_EXISTING_CONNECTION=='false'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ENCODING" FIELD="ENCODING_TYPE" NUM_ROW="9"
REQUIRED="true" SHOW="false">
<DEFAULT>"ISO-8859-15"</DEFAULT>
@@ -332,7 +334,15 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -99,4 +99,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -11,11 +11,13 @@ imports="
class DBRowBeginUtil extends DefaultDBRowUtil{
private String driver;
private boolean useActiveDirectoryAuth = false;
public void beforeComponentProcess(INode node){
super.beforeComponentProcess(node);
cid = node.getUniqueName();
this.driver = ElementParameterParser.getValue(node, "__DRIVER__");
this.useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
}
public void afterUseExistConnection(INode node) {
@@ -58,12 +60,20 @@ imports="
url_<%=cid%> += "//" + <%=dbname%>;
<%
} else {
%>
%>
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%
}
%>
}
<%
if (useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";applicationName=Talend;" + <%=dbproperties%>;
<%
}

View File

@@ -245,10 +245,14 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="5" SHOW_IF="USE_EXISTING_CONNECTION=='false'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PROPAGATE_RECORD_SET"
FIELD="CHECK"
NUM_ROW="5"
NUM_ROW="6"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -256,14 +260,14 @@
<PARAMETER
NAME="RECORD_SET_COLUMN"
FIELD="COLUMN_LIST"
NUM_ROW="5"
NUM_ROW="6"
SHOW_IF="PROPAGATE_RECORD_SET == 'true'"
/>
<PARAMETER
NAME="USE_PREPAREDSTATEMENT"
FIELD="CHECK"
NUM_ROW="6"
NUM_ROW="7"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -272,7 +276,7 @@
NAME="SET_PREPAREDSTATEMENT_PARAMETERS"
FIELD="TABLE"
REQUIRED="false"
NUM_ROW="7"
NUM_ROW="8"
NB_LINES="3"
SHOW_IF="(USE_PREPAREDSTATEMENT == 'true')"
>
@@ -315,7 +319,15 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -61,4 +61,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -805,7 +805,11 @@
<DEFAULT IF="((DBTYPE!='AS400') AND (DBTYPE!='MSSQL'))">""</DEFAULT>
<DEFAULT IF="(DBTYPE=='AS400') OR (DBTYPE=='MSSQL')">"prompt=false"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="MSSQL_ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="12" SHOW_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="NOTE"
FIELD="LABEL"
@@ -854,6 +858,14 @@
<IMPORT NAME="Driver_MaxDB" MODULE="sapdbc.jar" MVN="mvn:org.talend.libraries/sapdbc/6.0.0" REQUIRED_IF="DBTYPE=='MAXDB'" />
<IMPORT NAME="Driver-MSSQL" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='JTDS')" />
<IMPORT NAME="Driver-MSSQL-prop" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MSSQL') AND (MSSQL_DRIVER=='MSSQL_PROP') AND (MSSQL_ACTIVE_DIR_AUTH == 'true')" />
<IMPORT NAME="Driver-MYSQL5" MODULE="mysql-connector-java-5.1.30-bin.jar" MVN="mvn:org.talend.libraries/mysql-connector-java-5.1.30-bin/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') and (DBTYPE=='MYSQL') and (DB_MYSQL_VERSION=='MYSQL_5')"/>
<IMPORT NAME="Driver-MYSQL8" MODULE="mysql-connector-java-8.0.18.jar" MVN="mvn:mysql/mysql-connector-java/8.0.18" REQUIRED_IF="(DB_MYSQL_VERSION == 'MYSQL_8') AND (USE_EXISTING_CONNECTION == 'false') AND (DBTYPE=='MYSQL')" />
<IMPORT NAME="Driver-MARIADB" MODULE="mariadb-java-client-2.5.3.jar" MVN="mvn:org.mariadb.jdbc/mariadb-java-client/2.5.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') and (DBTYPE=='MYSQL') and (DB_MYSQL_VERSION=='MARIADB')" />

View File

@@ -898,10 +898,11 @@ class MSSQLManager extends Manager {
private boolean useExistingConnection;
private String connection;
private String driver;
private boolean useADAuth;
private static final String SEPARATOR = ";";
public MSSQLManager(String host, String port, String dbName, String dbSchema, String tableName, String userName, boolean useExistingConnection, String connection, String cid, String driver, String additionalParams) {
public MSSQLManager(String host, String port, String dbName, String dbSchema, String tableName, String userName, boolean useExistingConnection, String connection, String cid, String driver, String additionalParams, boolean useADAuth) {
super(dbName, tableName, userName, cid, additionalParams);
this.host = host;
this.port = port;
@@ -909,6 +910,7 @@ class MSSQLManager extends Manager {
this.useExistingConnection = useExistingConnection;
this.connection = connection;
this.driver = driver;
this.useADAuth = useADAuth;
}
protected String getDriver() {
if("JTDS".equals(driver)) {
@@ -930,7 +932,14 @@ class MSSQLManager extends Manager {
} else {
connectionUrl.append(" + \";databaseName=\" + ");
}
connectionUrl.append(dbName);
connectionUrl.append(dbName);
if ("MSSQL_PROP".equals(driver) && useADAuth) {
connectionUrl.append(" + \";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword\"");
connectionUrl.append(" + \";database=\" + ");
connectionUrl.append(dbName);
}
return connectionUrl.toString();
}
public String getSeparator(){
@@ -2239,7 +2248,8 @@ class ManagerFactory {
boolean useExistingConnection = ("true").equals(ElementParameterParser.getValue(node, "__USE_EXISTING_CONNECTION__"));
String connection = stringUtil.getString(ElementParameterParser.getValue(node, "__CONNECTION_MSSQL__"));
String driver = ElementParameterParser.getValue(node, "__MSSQL_DRIVER__");
manager = new MSSQLManager(host, port, dbName,dbSchema, tableName, userName, useExistingConnection, connection, cid, driver, additionalParams);
boolean useADAuth = ("true").equals(ElementParameterParser.getValue(node, "__MSSQL_ACTIVE_DIR_AUTH__"));
manager = new MSSQLManager(host, port, dbName,dbSchema, tableName, userName, useExistingConnection, connection, cid, driver, additionalParams, useADAuth);
} else if(("MYSQL").equals(dbType)) {
String host = ElementParameterParser.getValue(node, "__HOST__");
String port = ElementParameterParser.getValue(node, "__PORT__");

View File

@@ -59,6 +59,9 @@ ODBCNAME.NAME=ODBC Name
PASS.NAME=Password
PORT.NAME=Port
PROPERTIES.NAME=Additional JDBC Parameters
MSSQL_ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory
RUNNING_MODE.ITEM.HSQLDB_INPROGRESS_PERSISTENT=HSQLDb In Process Persistent
RUNNING_MODE.ITEM.HSQLDB_SERVER=HSQLDb Server
RUNNING_MODE.ITEM.HSQLDB_WEBSERVER=HSQLDb WebServer

View File

@@ -51,6 +51,8 @@ if((columnList != null && columnList.size() > 0) || "CLEAR".equals(tableAction)
java.lang.StringBuilder position2 = new java.lang.StringBuilder();
java.lang.StringBuilder position3 = new java.lang.StringBuilder();
boolean isMessagesOnServer = false;
for(java.util.Map<String, String> option : options) {
String key = option.get("KEY");
String value = option.get("VALUE");
@@ -60,6 +62,10 @@ if((columnList != null && columnList.size() > 0) || "CLEAR".equals(tableAction)
if ("1".equals(keySplit[1])) {
position1.append(keySplit[0]).append(" ").append(value).append(" ");
} else if ("2".equals(keySplit[1])) {
if ("MESSAGES".equals(keySplit[0]) && "ON SERVER".equals(value)) {
isMessagesOnServer = true;
}
if ("MODIFIED BY".equals(keySplit[0])) {
position2.append(" ").append(value).append(" ");
} else {
@@ -103,6 +109,27 @@ Character field_separator_<%=cid %> = (<%=field_separator%>).charAt(0);
callStmt_<%=cid%> = conn_<%=cid%>.prepareCall(sql_<%=cid%>);
callStmt_<%=cid%>.setString(1, param_<%=cid%>);
callStmt_<%=cid%>.execute();
<%
if(isLog4jEnabled_tableAction && isMessagesOnServer) {
%>
try {
java.sql.ResultSet rs_<%=cid%> = callStmt_<%=cid%>.getResultSet();
String mgsSQL_<%=cid%> = null;
if (rs_<%=cid%>.next()) {
mgsSQL_<%=cid%> = rs_<%=cid%>.getString("MSG_RETRIEVAL");
}
callStmt_<%=cid%> = conn_<%=cid%>.prepareCall(mgsSQL_<%=cid%>);
callStmt_<%=cid%>.execute();
java.sql.ResultSet rs2_<%=cid%> = callStmt_<%=cid%>.getResultSet();
while (rs2_<%=cid%>.next()) {
log.info("<%=cid%> - " + rs2_<%=cid%>.getString(1)+":"+rs2_<%=cid%>.getString(2).replaceAll("\n",""));
}
} catch (java.sql.SQLException sqle) {
log.error("<%=cid%> - Some errors occurred while executing the SQL to retrieve messages on server.");
}
<%
}
%>
callStmt_<%=cid%>.close();
<%
if(isLog4jEnabled_tableAction){
@@ -158,6 +185,27 @@ Character field_separator_<%=cid %> = (<%=field_separator%>).charAt(0);
callStmt_<%=cid%> = conn_<%=cid%>.prepareCall(sql_<%=cid%>);
callStmt_<%=cid%>.setString(1, param_<%=cid%>);
callStmt_<%=cid%>.execute();
<%
if(isLog4jEnabled_tableAction && isMessagesOnServer) {
%>
try {
java.sql.ResultSet rs_<%=cid%> = callStmt_<%=cid%>.getResultSet();
String mgsSQL_<%=cid%> = null;
if (rs_<%=cid%>.next()) {
mgsSQL_<%=cid%> = rs_<%=cid%>.getString("MSG_RETRIEVAL");
}
callStmt_<%=cid%> = conn_<%=cid%>.prepareCall(mgsSQL_<%=cid%>);
callStmt_<%=cid%>.execute();
java.sql.ResultSet rs2_<%=cid%> = callStmt_<%=cid%>.getResultSet();
while(rs2_<%=cid%>.next()){
log.info("<%=cid%> - " + rs2_<%=cid%>.getString(1)+":"+rs2_<%=cid%>.getString(2).replaceAll("\n",""));
}
} catch (java.sql.SQLException sqle) {
log.error("<%=cid%> - Some errors occurred while executing the SQL to retrieve messages on server.");
}
<%
}
%>
callStmt_<%=cid%>.close();
<%if(isLog4jEnabled_tableAction){%>
log.info("<%=cid%> - Bulk insert data into <%=manager.getLProtectedChar()%>" + tableName_<%=cid%> + "<%=manager.getRProtectedChar()%> has finished.");

View File

@@ -40,7 +40,6 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_<%=cid%>", conn_<%=cid%>);
globalMap.put("host_<%=cid%>", <%=dbhost%>);
globalMap.put("dbname_<%=cid%>", <%=dbname%>);
globalMap.put("port_<%=cid%>", <%=dbport%>);

View File

@@ -181,15 +181,27 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="PROPERTIES" FIELD="TEXT" NUM_ROW="10" REPOSITORY_VALUE="PROPERTIES_STRING" SHOW_IF="(#LINK@CONNECTOR.OUT.TABLE_REF == '0') AND (USE_EXISTING_CONNECTION == 'false')">
<PARAMETER NAME="PROPERTIES" FIELD="TEXT" NUM_ROW="10" REPOSITORY_VALUE="PROPERTIES_STRING" SHOW_IF="(#LINK@CONNECTOR.OUT.TABLE_REF == '0') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="16" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -41,4 +41,6 @@ CONNECTION.NAME=Component List
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -77,6 +77,7 @@ imports="
boolean useExistingConn = false;
String dbproperties = null;
String driver = "JTDS";
boolean useActiveDirectoryAuth = false;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
@@ -85,6 +86,7 @@ imports="
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
driver = ElementParameterParser.getValue(previousNode, "__DRIVER__");
useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(previousNode, "__ACTIVE_DIR_AUTH__"));
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
@@ -129,6 +131,14 @@ if(useExistingConn) {
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%}%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
String dbUser_<%=cid %> = <%=dbuser%>;

View File

@@ -107,7 +107,7 @@ imports="
}
else{
%>
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName" + <%=dbname %> + ";" + <%=dbproperties%>;
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName=" + <%=dbname %> + ";" + <%=dbproperties%>;
<%
}
}

View File

@@ -42,7 +42,6 @@ imports="
// schemas are always in upper case letters
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
// provide the connection for further usage in other components
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);
globalMap.put("host_" + "<%=cid%>", <%=dbhost%>);
globalMap.put("port_" + "<%=cid%>", <%=dbport%>);
globalMap.put("username_" + "<%=cid%>", <%=dbuser%>);

View File

@@ -4,7 +4,7 @@ AUTH_METHOD.ITEM.PASSWORD=Password
AUTH_METHOD.ITEM.PUBLICKEY=Public key
AUTH_METHOD.NAME=Authentication method
CURRENT_STATUS.NAME=Current Status
FILES.ITEM.FILEMASK=Filemask
FILES.ITEM.FILEMASK=Filename
FILES.ITEM.NEWNAME=New name
FILES.NAME=Files
HELP=org.talend.help.tFTPRename

View File

@@ -32,4 +32,3 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -54,4 +54,3 @@ imports="
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -18,15 +18,22 @@
if (setHadoopConf == null) {
setHadoopConf = Boolean.FALSE;
}
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
%>
<% if((confLib != null && confLib.length() > 0) || setHadoopConf){%>
String libPath_<%=cid %> = "";
<% if (setHadoopConf) { %>
<% if (setHadoopConf) {
libPath_<%=cid %> = <%=customHadoopConfPath %>;
if (isLog4jEnabled) {
%>
log.info("hadoop conf jar : " + <%=customHadoopConfPath %>);
<%
}
%>
libPath_<%=cid %> = <%=customHadoopConfPath %>;
<% } else { %>
@@ -91,14 +98,59 @@ class DealJobLibrary_<%=cid%> {
DealJobLibrary_<%=cid%> dealJobLibrary = new DealJobLibrary_<%=cid%>();
String confJarName = dealJobLibrary.getConfJarName(<%=confLib %>, this.contextStr);
<%if (ProcessorUtilities.isExportConfig()) {%>
libPath_<%=cid %> = "../lib/" + confJarName;
<%} else {
String libFolder = ProcessorUtilities.getJavaProjectLibFolder().getAbsolutePath().replace("\\", "/");%>
libPath_<%=cid %> = new java.io.File("<%=libFolder %>/" + confJarName).getAbsolutePath();
<%}%>
libPath_<%=cid %> = dealJobLibrary.replaceJarPathsFromCrcMap(libPath_<%=cid %>);
<%}%>
<%
String libFolder = ProcessorUtilities.isExportConfig() ? "../lib" : ProcessorUtilities.getJavaProjectLibFolder().getAbsolutePath().replace("\\", "/");
%>
libPath_<%=cid%> = dealJobLibrary.replaceJarPathsFromCrcMap(new java.io.File("<%=libFolder%>/" + confJarName).getAbsolutePath());
java.io.File fileConfJar = new java.io.File(libPath_<%=cid%>);
// Checking standard hadoop conf
if (!fileConfJar.exists()) {
<%
if (isLog4jEnabled) {
%>
log.info("Hadoop configuration '" + confJarName + "' does not exist");
<%
}
%>
confJarName = confJarName.replace("_"+this.contextStr,"");
libPath_<%=cid%> = dealJobLibrary.replaceJarPathsFromCrcMap(new java.io.File("<%=libFolder%>/" + confJarName).getAbsolutePath());
fileConfJar = new java.io.File(libPath_<%=cid%>);
}
// Checking hadoop conf without timestamp suffix
if (!fileConfJar.exists()) {
<%
if (isLog4jEnabled) {
%>
log.info("Hadoop configuration '" + confJarName + "' does not exist");
<%
}
%>
confJarName = confJarName.replaceFirst("(_[0-9]+)","");
libPath_<%=cid%> = dealJobLibrary.replaceJarPathsFromCrcMap(new java.io.File("<%=libFolder%>/" + confJarName).getAbsolutePath());
fileConfJar = new java.io.File(libPath_<%=cid%>);
}
if (!fileConfJar.exists()) {
<%
if (isLog4jEnabled) {
%>
log.info("Hadoop configuration '" + confJarName + "' does not exist");
<%
}
%>
throw new RuntimeException("Hadoop configuration jar not found");
}
<%
if (isLog4jEnabled) {
%>
log.info("Hadoop configuration '" + confJarName + "' used");
<%
}
}
%>
java.net.URLClassLoader currentLoader<%=cid %> = (java.net.URLClassLoader) Thread.currentThread().getContextClassLoader();
java.lang.reflect.Method method_<%=cid %> = java.net.URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { java.net.URL.class });

View File

@@ -779,6 +779,11 @@
SHOW_IF="((isShow[SET_HADOOP_LOGIN]) AND (SET_HADOOP_LOGIN=='true'))">
<DEFAULT>"kerberos"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SET_APPLICATION_NAME" FIELD="CHECK" NUM_ROW="110"
SHOW="true">
<DEFAULT>true</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>

View File

@@ -227,8 +227,13 @@ if(hiveDistrib.isExecutedThroughWebHCat()) {
}
%>
try {
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Hive/SetQueryName.javajet"%>
<%
<%
boolean setApplicationName=ElementParameterParser.getBooleanValue(node, "__SET_APPLICATION_NAME__");
if (setApplicationName) {
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Hive/SetQueryName.javajet"%>
<%
}
if (usePrepareStatement) {
for (Map<String, String> param : prepareStatementParameters) {

View File

@@ -259,4 +259,6 @@ QUBOLE_ENDPOINT_URL.NAME=
QUBOLE_ENDPOINT_URL.ITEM.DEFAULT=DEFAULT
QUBOLE_ENDPOINT_URL.ITEM.EU_CENTRAL=EU_CENTRAL
QUBOLE_ENDPOINT_URL.ITEM.INDIA=INDIA
QUBOLE_ENDPOINT_URL.ITEM.US=US
QUBOLE_ENDPOINT_URL.ITEM.US=US
SET_APPLICATION_NAME.NAME=Set application name

View File

@@ -60,6 +60,5 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("dbschema_" + "<%=cid%>", <%=dbschema%>);

View File

@@ -34,4 +34,3 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -31,5 +31,4 @@
<%//----------------------------component codes-----------------------------------------%>
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -42,6 +42,8 @@ String additional_query_parameters = ElementParameterParser.getValue(node, "__AD
boolean convertToUppercase = false; // not active this function
boolean useExistingDynamic = ("true").equals(ElementParameterParser.getValue(node, "__USE_EXISTING_DYNAMIC__"));
boolean useCodePage = ("true").equals(ElementParameterParser.getValue(node, "__USE_CODE_PAGE__"));
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
int deletedCount_<%=cid%>=0;
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>

View File

@@ -301,6 +301,10 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="FIELDS_TERMINATED_BY"
FIELD="TEXT"
@@ -409,6 +413,14 @@
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -60,3 +60,5 @@ USE_EXISTING_DYNAMIC.NAME=Use existing dynamic schema
DYNAMIC.NAME=Dynamic schema
ADDITIONAL_QUERY_PARAMETERS.NAME=Additional query parameters
USE_CODE_PAGE.NAME=Code page
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -12,6 +12,7 @@ imports="
public void createURL(INode node) {
super.createURL(node);
String driver = ElementParameterParser.getValue(node, "__DRIVER__");
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
<%
if(driver.equals("JTDS")) {
@@ -42,6 +43,15 @@ imports="
}
%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
<%
}
@@ -65,8 +75,6 @@ imports="
globalMap.put("dbschema_<%=cid%>", <%=dbschema%>);
globalMap.put("db_<%=cid%>", <%=dbname%>);
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("shareIdentitySetting_<%=cid%>", <%=ElementParameterParser.getValue(node, "__SHARE_IDENTITY_SETTING__")%>);

View File

@@ -189,6 +189,9 @@
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="DRIVER=='MSSQL_PROP'">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="AUTO_COMMIT" FIELD="CHECK" NUM_ROW="10">
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -199,10 +202,18 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="DRIVER=='JTDS'" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="DRIVER=='MSSQL_PROP'" />
<IMPORT NAME="slf4j-api-1.7.25.jar" MODULE="slf4j-api-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="slf4j-log4j12-1.7.25.jar" MODULE="slf4j-log4j12-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="DRIVER=='JTDS'" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="DRIVER=='MSSQL_PROP'" />
<IMPORT NAME="slf4j-api-1.7.25.jar" MODULE="slf4j-api-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="slf4j-log4j12-1.7.25.jar" MODULE="slf4j-log4j12-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.25" REQUIRED_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -27,4 +27,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -54,6 +54,7 @@ imports="
public void setURL(INode node) {
String dbschema = ElementParameterParser.getValue(node, "__DB_SCHEMA__");
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
@@ -84,6 +85,14 @@ imports="
}
%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
String dbschema_<%=cid%> = <%=dbschema%>;
<%
@@ -123,7 +132,7 @@ imports="
net.sourceforge.jtds.jdbc.TalendNTextImpl tNTextImpl_<%=cid %> = new net.sourceforge.jtds.jdbc.TalendNTextImpl(clob_<%=cid %>);
tmpContent_<%=cid%> = tNTextImpl_<%=cid %>.getValue();
}else{
tmpContent_<%=cid%> = null;
tmpContent_<%=cid%> = null;
}
<%
}else{

View File

@@ -233,6 +233,10 @@
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
@@ -258,9 +262,17 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -49,4 +49,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -69,7 +69,9 @@ skeleton="../templates/db_output_bulk.skeleton"
boolean isEnableDebug = ("true").equals(ElementParameterParser.getValue(node,"__ENABLE_DEBUG_MODE__"));
boolean usingStatsLogs=cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB");
boolean useBatchSize = "true".equals(ElementParameterParser.getValue(node,"__USE_BATCH_SIZE__"));
String batchSize=ElementParameterParser.getValue(node,"__BATCH_SIZE__");
String batchSize=ElementParameterParser.getValue(node,"__BATCH_SIZE__");
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
String rejectConnName = null;
List<? extends IConnection> rejectConns = node.getOutgoingConnections("REJECT");

View File

@@ -233,11 +233,15 @@
<PARAMETER NAME="PROPERTIES" FIELD="TEXT" NUM_ROW="4" REPOSITORY_VALUE="PROPERTIES_STRING" SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USE_ALTERNATE_SCHEMA"
FIELD="CHECK"
NUM_ROW="5"
NUM_ROW="7"
SHOW_IF="USE_EXISTING_CONNECTION == 'true'"
>
<DEFAULT>false</DEFAULT>
@@ -245,7 +249,7 @@
<PARAMETER
NAME="ALTERNATE_SCHEMA"
FIELD="TEXT"
NUM_ROW="6"
NUM_ROW="8"
REQUIRED="true"
SHOW_IF="(USE_EXISTING_CONNECTION == 'true') AND (USE_ALTERNATE_SCHEMA == 'true')"
>
@@ -352,7 +356,15 @@
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523"
REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -1305,13 +1305,12 @@ if(incomingConnName != null && columnList != null){
<%
}
%>
<%if(isEnableDebug){dbLog.data().sqlDebugPrint("globalMap.get(\""+cid+"_QUERY\")");}%>
insertedCount_<%=cid%> = insertedCount_<%=cid%> + pstmtInsert_<%=cid %>.executeUpdate();
nb_line_<%=cid%>++;
<%dbLog.data().inserting(dbLog.var("nb_line"));%>
}else{
nb_line_<%=cid%>++;
<%if(isEnableDebug){dbLog.data().sqlDebugPrint("globalMap.get(\""+cid+"_QUERY\")");}%>
<%dbLog.data().updating(dbLog.var("nb_line"));%>
}
} catch(java.lang.Exception e) {
@@ -1347,7 +1346,9 @@ if(incomingConnName != null && columnList != null){
}
}
%>
}
} finally {
<%if(isEnableDebug){dbLog.data().sqlDebugPrint("globalMap.get(\""+cid+"_QUERY\")");}%>
}
<%
} else if (("DELETE").equals(dataAction)) {

View File

@@ -101,4 +101,6 @@ DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
USE_ALTERNATE_SCHEMA.NAME=Use alternate schema
ALTERNATE_SCHEMA.NAME=Schema
ALTERNATE_SCHEMA.NAME=Schema
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -225,7 +225,11 @@
SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="FIELDSEPARATOR"
FIELD="TEXT"
@@ -316,6 +320,7 @@
<TEMPLATE_PARAM SOURCE="self.DBNAME" TARGET="tMBE.DBNAME" />
<TEMPLATE_PARAM SOURCE="self.DB_SCHEMA" TARGET="tMBE.DB_SCHEMA" />
<TEMPLATE_PARAM SOURCE="self.PROPERTIES" TARGET="tMBE.PROPERTIES" />
<TEMPLATE_PARAM SOURCE="self.ACTIVE_DIR_AUTH" TARGET="tMBE.ACTIVE_DIR_AUTH" />
<TEMPLATE_PARAM SOURCE="self.USER" TARGET="tMBE.USER" />
<TEMPLATE_PARAM SOURCE="self.PASS" TARGET="tMBE.PASS" />
<TEMPLATE_PARAM SOURCE="self.TABLE" TARGET="tMBE.TABLE" />

View File

@@ -47,4 +47,6 @@ ENCODING.NAME=Encoding
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -34,6 +34,7 @@ imports="
}
public void setURL(INode node) {
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
%>
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
@@ -64,6 +65,14 @@ imports="
}
%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
<%
}

View File

@@ -245,10 +245,14 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PROPAGATE_RECORD_SET"
FIELD="CHECK"
NUM_ROW="5"
NUM_ROW="8"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -256,14 +260,14 @@
<PARAMETER
NAME="RECORD_SET_COLUMN"
FIELD="COLUMN_LIST"
NUM_ROW="5"
NUM_ROW="10"
SHOW_IF="PROPAGATE_RECORD_SET == 'true'"
/>
<PARAMETER
NAME="USE_PREPAREDSTATEMENT"
FIELD="CHECK"
NUM_ROW="6"
NUM_ROW="15"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
@@ -272,7 +276,7 @@
NAME="SET_PREPAREDSTATEMENT_PARAMETERS"
FIELD="TABLE"
REQUIRED="false"
NUM_ROW="7"
NUM_ROW="20"
NB_LINES="3"
SHOW_IF="(USE_PREPAREDSTATEMENT == 'true')"
>
@@ -294,6 +298,7 @@
<ITEM NAME="Object" VALUE="Object"/>
<ITEM NAME="Short" VALUE="Short"/>
<ITEM NAME="String" VALUE="String"/>
<ITEM NAME="NString" VALUE="NString"/>
<ITEM NAME="Time" VALUE="Time"/>
<ITEM NAME="Null" VALUE="Null"/>
</ITEMS>
@@ -315,8 +320,16 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER=='JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER=='JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -51,6 +51,7 @@ SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Long=Long
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Object=Object
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Short=Short
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.String=String
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.NString=NString
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Time=Time
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Null=Null
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_VALUE=Parameter Value
@@ -61,4 +62,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -72,6 +72,7 @@ if(inputSchema != null && inputSchema.size() > 0 && outputSchema != null && outp
List<Column> insertionColumnList = getInsertionColumnList(scdConfiger);
String surrogateKeyField = scdConfiger.getSurrogateKeyField();
boolean dieOnError = "true".equals(ElementParameterParser.getValue(node, "__DIE_ON_ERROR__"));
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
int schemaOptNum=100;
String schemaOptNumStr=ElementParameterParser.getValue(node, "__SCHEMA_OPT_NUM__");

View File

@@ -505,6 +505,10 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="36" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SCHEMA_OPT_NUM" FIELD="TEXT" NUM_ROW="90"
REQUIRED="true" SHOW="false">
<DEFAULT>100</DEFAULT>
@@ -513,9 +517,17 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Talend_MssqlUtil" MODULE="talend_DB_mssqlUtil-1.4.jar" MVN="mvn:org.talend.components.lib/talend_DB_mssqlUtil/1.4" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_DB_mssqlUtil-1.4.jar" REQUIRED="true" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -99,4 +99,6 @@ SCHEMA_OPT_NUM.NAME=Min column number of optimize code
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -23,6 +23,7 @@ String dbuser = ElementParameterParser.getValue(node, "__USER__");
String spName = ElementParameterParser.getValue(node, "__SP_NAME__");
boolean isFunction = ("true").equals(ElementParameterParser.getValue(node, "__IS_FUNCTION__"));
boolean useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(node, "__ACTIVE_DIR_AUTH__"));
List<Map<String, String>> spArgs = (List<Map<String,String>>) ElementParameterParser.getObjectValue(node, "__SP_ARGS__");
%>

View File

@@ -241,6 +241,10 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACTIVE_DIR_AUTH" FIELD="CHECK" NUM_ROW="6" SHOW_IF="(DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
@@ -254,8 +258,16 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-jTDS" MODULE="jtds-1.3.1-patch-20190523.jar" MVN="mvn:net.sourceforge.jtds/jtds/1.3.1-patch-20190523" REQUIRED_IF="(DRIVER == 'JTDS') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Driver-mssql-jdbc" MODULE="mssql-jdbc.jar" MVN="mvn:org.talend.libraries/mssql-jdbc/6.0.0" REQUIRED_IF="(DRIVER == 'MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="adal4j" MODULE="adal4j-1.6.5.jar" MVN="mvn:com.microsoft.azure/adal4j/1.6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.10.jar" MVN="mvn:org.apache.commons/commons-lang3/3.10" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="commons-codec" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="gson" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="oauth2-oidc-sdk" MODULE="oauth2-oidc-sdk-6.5.jar" MVN="mvn:com.nimbusds/oauth2-oidc-sdk/6.5" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="json-smart" MODULE="json-smart-2.3.jar" MVN="mvn:net.minidev/json-smart/2.3" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="nimbus-jose-jwt" MODULE="nimbus-jose-jwt-8.11.jar" MVN="mvn:com.nimbusds/nimbus-jose-jwt/8.11" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="javax.mail" MODULE="javax.mail-1.6.2.jar" MVN="mvn:com.sun.mail/javax.mail/1.6.2" REQUIRED_IF="(ACTIVE_DIR_AUTH == 'true') AND (DRIVER=='MSSQL_PROP') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -35,4 +35,6 @@ DATASOURCE_ALIAS.NAME=Data source alias
DRIVER.NAME=JDBC Provider
DRIVER.ITEM.JTDS=Open source JTDS
DRIVER.ITEM.MSSQL_PROP=Microsoft
DRIVER.ITEM.MSSQL_PROP=Microsoft
ACTIVE_DIR_AUTH.NAME=Authenticate using Azure Active Directory

View File

@@ -59,6 +59,4 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("db_<%=cid%>",<%=dbname%>);

View File

@@ -37,5 +37,4 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_<%=cid%>",conn_<%=cid%>);
globalMap.put("db_<%=cid%>",<%=dbname%>);

View File

@@ -95,6 +95,7 @@ imports="
<%
}
%>
globalMap.put("conn_<%=cid%>", conn_<%=cid%>);
<%
}
@@ -183,7 +184,6 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);
<%
String connectionType = ElementParameterParser.getValue(node, "__CONNECTION_TYPE__");
if(("ORACLE_WALLET").equals(connectionType)&&(dbschema==null||"".equals(dbschema)||"\"\"".equals(dbschema))) {

View File

@@ -34,4 +34,3 @@ imports="
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -34,4 +34,3 @@ imports="
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -52,5 +52,3 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -71,4 +71,3 @@ imports="
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("schema_" + "<%=cid%>",<%=dbschema%>);
globalMap.put("conn_" + "<%=cid%>",conn_<%=cid%>);

View File

@@ -140,7 +140,6 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="75"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
GROUP="S3_CONFIG"
>
@@ -182,26 +181,6 @@
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="85"
NB_LINES="5"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
GROUP="S3_CONFIG"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="90"
REQUIRED="true"
SHOW_IF="(ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')"
GROUP="S3_CONFIG"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="BUCKET" FIELD="TEXT" NUM_ROW="100" REQUIRED="true"
GROUP="S3_CONFIG">
<DEFAULT>""</DEFAULT>
@@ -281,6 +260,126 @@
<ITEM NAME="VALUE" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="50"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="50"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="51"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="53"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="54"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="55"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="56"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="57"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="58"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>

View File

@@ -91,5 +91,38 @@ ASSUME_ROLE.NAME=Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -202,33 +202,12 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="75"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
GROUP="S3_CONFIG"
>
<DEFAULT>15</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="80"
NB_LINES="5"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
GROUP="S3_CONFIG"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="85"
REQUIRED="true"
SHOW_IF="(ASSUME_ROLE_S3 == 'true') AND (SET_STS_ENDPOINT == 'true')"
GROUP="S3_CONFIG"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="REGION"
FIELD="OPENED_LIST"
@@ -433,7 +412,124 @@
<ITEM NAME="VALUE" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="81"
NB_LINES="5"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
GROUP="ASSUME_ROLE_CONFIG"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="81"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true') AND (SET_STS_ENDPOINT == 'true')"
GROUP="ASSUME_ROLE_CONFIG"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="82"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="83"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="84"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="85"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="86"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="87"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="88"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE_S3] AND (ASSUME_ROLE_S3 == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="JDBC_URL"
FIELD="CLOSED_LIST"
@@ -505,6 +601,13 @@
<TEMPLATE_PARAM SOURCE="self.SESSION_DURATION" TARGET="tROB.SESSION_DURATION" />
<TEMPLATE_PARAM SOURCE="self.SET_STS_ENDPOINT" TARGET="tROB.SET_STS_ENDPOINT" />
<TEMPLATE_PARAM SOURCE="self.STS_ENDPOINT" TARGET="tROB.STS_ENDPOINT" />
<TEMPLATE_PARAM SOURCE="self.SIGNING_REGION" TARGET="tROB.SIGNING_REGION" />
<TEMPLATE_PARAM SOURCE="self.EXTERNALID" TARGET="tROB.EXTERNALID" />
<TEMPLATE_PARAM SOURCE="self.SERIALNUMBER" TARGET="tROB.SERIALNUMBER" />
<TEMPLATE_PARAM SOURCE="self.TOKENCODE" TARGET="tROB.TOKENCODE" />
<TEMPLATE_PARAM SOURCE="self.TAGS" TARGET="tROB.TAGS" />
<TEMPLATE_PARAM SOURCE="self.POLICY_TABLE" TARGET="tROB.POLICY_TABLE" />
<TEMPLATE_PARAM SOURCE="self.POLICY" TARGET="tROB.POLICY" />
<TEMPLATE_PARAM SOURCE="self.BUCKET" TARGET="tROB.BUCKET" />
<TEMPLATE_PARAM SOURCE="self.KEY" TARGET="tROB.KEY" />

View File

@@ -161,8 +161,41 @@ ASSUME_ROLE_REDSHIFT.NAME=Redshift Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)
REDSHIFT_IAM_CONFIG.NAME=Redshift IAM Setting
ROLE_TABLE.NAME=IAM Role ARNs chains

View File

@@ -408,7 +408,11 @@ String inputConnName = null;
%>
obj_<%=cid%> = <%=value %>;
if(obj_<%=cid%>!=null) {
paraList_<%=cid %>.add("--context_param <%=name %>=" + RuntimeUtils.tRunJobConvertContext(obj_<%=cid%>));
if (obj_<%=cid %>.getClass().getName().equals("java.util.Date")) {
paraList_<%=cid %>.add("--context_param <%=name %>=" + ((java.util.Date) obj_<%=cid %>).getTime());
} else {
paraList_<%=cid %>.add("--context_param <%=name %>=" + RuntimeUtils.tRunJobConvertContext(obj_<%=cid%>));
}
} else {
paraList_<%=cid %>.add("--context_param <%=name %>=" + NULL_VALUE_EXPRESSION_IN_COMMAND_STRING_FOR_CHILD_JOB_ONLY);
}

View File

@@ -111,7 +111,6 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="25"
REQUIRED="true"
GROUP="CONNECTION_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
@@ -218,19 +217,122 @@
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="35"
NUM_ROW="40"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="35"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')"
NUM_ROW="40"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="41"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="43"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="44"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="45"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="46"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="47"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="48"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ACCESS_CONTROL_LIST" FIELD="CHECK" NUM_ROW="87">
<DEFAULT>false</DEFAULT>

View File

@@ -57,8 +57,41 @@ ASSUME_ROLE.NAME=Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)
ACCESS_CONTROL_LIST.NAME=Access control
ACL.NAME=Access

View File

@@ -112,7 +112,6 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="25"
REQUIRED="true"
GROUP="CONNECTION_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
@@ -218,16 +217,119 @@
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="35"
NUM_ROW="40"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="35"
NUM_ROW="40"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="41"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="43"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="44"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="45"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="46"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="47"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="48"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>

View File

@@ -56,5 +56,38 @@ ASSUME_ROLE.NAME=Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -112,7 +112,6 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="25"
REQUIRED="true"
GROUP="CONNECTION_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
@@ -218,16 +217,119 @@
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="35"
NUM_ROW="40"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="35"
NUM_ROW="40"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="41"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="43"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="44"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="45"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="46"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="47"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="48"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>

View File

@@ -59,5 +59,38 @@ ASSUME_ROLE.NAME=Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -112,7 +112,6 @@
NAME="SESSION_DURATION"
FIELD="TEXT"
NUM_ROW="25"
REQUIRED="true"
GROUP="CONNECTION_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
@@ -198,23 +197,125 @@
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="35"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="35"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true') AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
NAME="SET_STS_ENDPOINT"
FIELD="CHECK"
NUM_ROW="40"
NB_LINES="5"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
</PARAMETER>
<PARAMETER
NAME="STS_ENDPOINT"
FIELD="TEXT"
NUM_ROW="40"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[SET_STS_ENDPOINT] AND (SET_STS_ENDPOINT == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SIGNING_REGION"
FIELD="OPENED_LIST"
NUM_ROW="41"
GROUP="ASSUME_ROLE_CONFIG"
REQUIRED="true"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS DEFAULT="DEFAULT">
<ITEM NAME="DEFAULT" VALUE="DEFAULT" />
<ITEM NAME="GovCloud" VALUE="&quot;us-gov-west-1&quot;" />
<ITEM NAME="US_EAST_1" VALUE="&quot;us-east-1&quot;" />
<ITEM NAME="US_WEST_1" VALUE="&quot;us-west-1&quot;" />
<ITEM NAME="US_WEST_2" VALUE="&quot;us-west-2&quot;" />
<ITEM NAME="US_EAST_2" VALUE="&quot;us-east-2&quot;" />
<ITEM NAME="SA_EAST_1" VALUE="&quot;sa-east-1&quot;" />
<ITEM NAME="EU_WEST_1" VALUE="&quot;eu-west-1&quot;" />
<ITEM NAME="EU_CENTRAL_1" VALUE="&quot;eu-central-1&quot;" />
<ITEM NAME="EU_WEST_2" VALUE="&quot;eu-west-2&quot;" />
<ITEM NAME="EU_WEST_3" VALUE="&quot;eu-west-3&quot;" />
<ITEM NAME="EU_NORTH_1" VALUE="&quot;eu-north-1&quot;" />
<ITEM NAME="CN_NORTH_1" VALUE="&quot;cn-north-1&quot;" />
<ITEM NAME="CN_NORTHWEST_1" VALUE="&quot;cn-northwest-1&quot;" />
<ITEM NAME="AP_EAST_1" VALUE="&quot;ap-east-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_1" VALUE="&quot;ap-southeast-1&quot;" />
<ITEM NAME="AP_SOUTHEAST_2" VALUE="&quot;ap-southeast-2&quot;" />
<ITEM NAME="AP_NORTHEAST_1" VALUE="&quot;ap-northeast-1&quot;" />
<ITEM NAME="AP_NORTHEAST_2" VALUE="&quot;ap-northeast-2&quot;" />
<ITEM NAME="AP_SOUTH_1" VALUE="&quot;ap-south-1&quot;" />
<ITEM NAME="CA_CENTRAL_1" VALUE="&quot;ca-central-1&quot;" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="EXTERNALID"
FIELD="TEXT"
NUM_ROW="43"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SERIALNUMBER"
FIELD="TEXT"
NUM_ROW="44"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TOKENCODE"
FIELD="TEXT"
NUM_ROW="45"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TAGS"
FIELD="TABLE"
NUM_ROW="46"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="TAG_KEY" FIELD="TEXT" />
<ITEM NAME="TAG_VALUE" FIELD="TEXT" />
<ITEM NAME="TAG_TRANSITIVE" FIELD="CHECK" VALUE="FALSE"/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY_TABLE"
FIELD="TABLE"
NUM_ROW="47"
GROUP="ASSUME_ROLE_CONFIG"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<ITEMS>
<ITEM NAME="POLICY_ARN" VALUE="" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="POLICY"
FIELD="MEMO"
NUM_ROW="48"
GROUP="ASSUME_ROLE_CONFIG"
NB_LINES="15"
SHOW_IF="isShow[ASSUME_ROLE] AND (ASSUME_ROLE == 'true')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>

View File

@@ -56,5 +56,38 @@ ASSUME_ROLE.NAME=Assume Role
ARN.NAME=Role ARN
ROLE_SESSION_NAME.NAME=Role session name
SESSION_DURATION.NAME=Session duration(minutes)
ASSUME_ROLE_CONFIG.NAME=Assume Role Configuration
EXTERNALID.NAME=External Id
SERIALNUMBER.NAME=Serial number
TOKENCODE.NAME=Token code
POLICY_TABLE.NAME=IAM Policy ARNs
POLICY_TABLE.ITEM.POLICY_ARN=Policy ARN
POLICY.NAME=Policy
TAGS.NAME=Tags
TAGS.ITEM.TAG_KEY=Key
TAGS.ITEM.TAG_VALUE=Value
TAGS.ITEM.TAG_TRANSITIVE=Transitive
SET_STS_ENDPOINT.NAME=STS Endpoint
STS_ENDPOINT.NAME=
STS_ENDPOINT.NAME=
SIGNING_REGION.NAME=Signing region
SIGNING_REGION.ITEM.DEFAULT=DEFAULT
SIGNING_REGION.ITEM.GovCloud=AWS GovCloud (US)
SIGNING_REGION.ITEM.US_EAST_1=US Standard
SIGNING_REGION.ITEM.US_WEST_1=US West (N. California)
SIGNING_REGION.ITEM.US_WEST_2=US West (Oregon)
SIGNING_REGION.ITEM.US_EAST_2=US East (Ohio)
SIGNING_REGION.ITEM.SA_EAST_1=South America (Sao Paulo)
SIGNING_REGION.ITEM.EU_WEST_1=EU (Ireland)
SIGNING_REGION.ITEM.EU_CENTRAL_1=EU (Frankfurt)
SIGNING_REGION.ITEM.EU_WEST_2=EU (London)
SIGNING_REGION.ITEM.EU_WEST_3=EU (Paris)
SIGNING_REGION.ITEM.EU_NORTH_1=EU (Stockholm)
SIGNING_REGION.ITEM.CN_NORTH_1=China (Beijing)
SIGNING_REGION.ITEM.CN_NORTHWEST_1=China (Ningxia)
SIGNING_REGION.ITEM.AP_EAST_1=Asia Pacific (Hong Kong)
SIGNING_REGION.ITEM.AP_SOUTHEAST_1=Asia Pacific (Singapore)
SIGNING_REGION.ITEM.AP_SOUTHEAST_2=Asia Pacific (Sydney)
SIGNING_REGION.ITEM.AP_NORTHEAST_1=Asia Pacific (Tokyo)
SIGNING_REGION.ITEM.AP_NORTHEAST_2=Asia Pacific (Seoul)
SIGNING_REGION.ITEM.AP_SOUTH_1=Asia Pacific (Mumbai)
SIGNING_REGION.ITEM.CA_CENTRAL_1=Canada (Central)

View File

@@ -16,9 +16,18 @@
boolean assumeRole = "true".equals(ElementParameterParser.getValue(node, "__ASSUME_ROLE__"));
String arn = ElementParameterParser.getValue(node,"__ARN__");
String roleSessionName = ElementParameterParser.getValue(node,"__ROLE_SESSION_NAME__");
String externalId = ElementParameterParser.getValue(node,"__EXTERNALID__");
String serialNumber = ElementParameterParser.getValue(node,"__SERIALNUMBER__");
String tokenCode = ElementParameterParser.getValue(node,"__TOKENCODE__");
List<Map<String, String>> tagInfoList = (List<Map<String, String>>)ElementParameterParser.getObjectValue(node, "__TAGS__");
List<Map<String, String>> policyList = (List<Map<String, String>>)ElementParameterParser.getObjectValue(node, "__POLICY_TABLE__");
String policyJson = ElementParameterParser.getValue(node,"__POLICY__");
boolean setStsEndpoint = "true".equals(ElementParameterParser.getValue(node,"__SET_STS_ENDPOINT__"));
String stsEndpoint = ElementParameterParser.getValue(node,"__STS_ENDPOINT__");
String signingRegion = ElementParameterParser.getValue(node,"__SIGNING_REGION__");
boolean set_signingRegion = (signingRegion!=null && !signingRegion.isEmpty() && !"DEFAULT".equalsIgnoreCase(signingRegion));
boolean enableAccelerateMode = "true".equals(ElementParameterParser.getValue(node,"__ENABLE_ACCELERATE__"));
@@ -225,22 +234,116 @@
}
if(assumeRole) {
int policyListSize = policyList.size();
int tagInfoListSize = tagInfoList.size();
%>
int policyListSize_<%=cid%> = <%=policyListSize%>;
int tagInfoListSize_<%=cid%> = <%=tagInfoListSize%>;
int sessionDurationSeconds_<%=cid%> = <%=sessionDuration%> * 60;
com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.Builder stsBuilder_<%=cid%> =
new com.amazonaws.auth.STSAssumeRoleSessionCredentialsProvider.Builder(<%=arn%>, <%=roleSessionName%>).withLongLivedCredentialsProvider(credentialsProvider_<%=cid%>)
.withRoleSessionDurationSeconds(sessionDurationSeconds_<%=cid%>);
<%
if(setStsEndpoint) {
%>
stsBuilder_<%=cid%>.withServiceEndpoint(<%=stsEndpoint%>);
<%
}
%>
stsBuilder_<%=cid%>.withClientConfiguration(cc_<%=cid%>);
credentialsProvider_<%=cid%> = stsBuilder_<%=cid%>.build();
List<com.amazonaws.services.securitytoken.model.PolicyDescriptorType> policyArnList_<%=cid%> = null;
<%
if(policyListSize > 0){
%>
policyArnList_<%=cid%> = new java.util.ArrayList<com.amazonaws.services.securitytoken.model.PolicyDescriptorType>();
<%
for(int policyListIndex = 0; policyListIndex < policyListSize; policyListIndex++){
String policyArn = policyList.get(policyListIndex).get("POLICY_ARN");
%>
policyArnList_<%=cid%>.add(new com.amazonaws.services.securitytoken.model.PolicyDescriptorType().withArn(<%=policyArn%>));
<%
}
}
%>
List<com.amazonaws.services.securitytoken.model.Tag> tagList_<%=cid%> = null;
List<String> tranTagKeys_<%=cid%> = null;
<%
if(tagInfoListSize > 0){
%>
tagList_<%=cid%> = new java.util.ArrayList<com.amazonaws.services.securitytoken.model.Tag>();
tranTagKeys_<%=cid%> = new java.util.ArrayList<String>();
<%
for(int tagInfoListIndex = 0; tagInfoListIndex < tagInfoListSize; tagInfoListIndex++){
String tagKey = tagInfoList.get(tagInfoListIndex).get("TAG_KEY");
String tagValue = tagInfoList.get(tagInfoListIndex).get("TAG_VALUE");
String tagTransitive = tagInfoList.get(tagInfoListIndex).get("TAG_TRANSITIVE");
%>
tagList_<%=cid%>.add(new com.amazonaws.services.securitytoken.model.Tag().withKey(<%=tagKey%>).withValue(<%=tagValue%>));
<%
if("true".equals(tagTransitive)) {
%>
tranTagKeys_<%=cid%>.add(<%=tagKey%>);
<%
}
}
}
%>
com.amazonaws.services.securitytoken.AWSSecurityTokenService stsClient_<%=cid%> =
com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClientBuilder.standard()
.withCredentials(credentialsProvider_<%=cid%>)
.withClientConfiguration(cc_<%=cid%>)
<%if(setStsEndpoint && stsEndpoint != null && !stsEndpoint.isEmpty()){%>
<%if(set_signingRegion){%>
.withEndpointConfiguration(new com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration(<%=stsEndpoint%>, <%=signingRegion%>))
<%}else{%>
.withEndpointConfiguration(new com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration(<%=stsEndpoint%>, null))
<%}%>
<%}else{%>
<%if(set_signingRegion){%>
.withRegion(<%=signingRegion%>)
<%}else{%>
.withRegion(com.amazonaws.regions.Regions.US_EAST_1)
<%}%>
<%}%>
.build();
com.amazonaws.services.securitytoken.model.AssumeRoleRequest assumeRoleRequest_<%=cid%> =
new com.amazonaws.services.securitytoken.model.AssumeRoleRequest()
.withDurationSeconds(sessionDurationSeconds_<%=cid%>)
<%if(externalId != null && !externalId.isEmpty() && !("\"\"").equals(externalId)){%>
.withExternalId(<%=externalId%>)
<%}%>
<%if(policyJson != null && !policyJson.isEmpty() && !("\"\"").equals(policyJson)){%>
.withPolicy(<%=policyJson%>)
<%}%>
.withRoleArn(<%=arn%>)
.withRoleSessionName(<%=roleSessionName%>)
<%if(serialNumber != null && !serialNumber.isEmpty() && !("\"\"").equals(serialNumber)){%>
.withSerialNumber(<%=serialNumber%>)
<%}%>
<%if(tokenCode != null && !tokenCode.isEmpty() && !("\"\"").equals(tokenCode)){%>
.withTokenCode(<%=tokenCode%>)
<%}%>
;
if(policyListSize_<%=cid%> > 0 && policyArnList_<%=cid%> != null && policyArnList_<%=cid%>.size() > 0){
assumeRoleRequest_<%=cid%>.withPolicyArns(policyArnList_<%=cid%>);
}
if(tagInfoListSize_<%=cid%> > 0 && tagList_<%=cid%> != null && tagList_<%=cid%>.size() > 0){
assumeRoleRequest_<%=cid%>.withTags(tagList_<%=cid%>);
}
if(tagInfoListSize_<%=cid%> > 0 && tranTagKeys_<%=cid%> != null && tranTagKeys_<%=cid%>.size() > 0){
assumeRoleRequest_<%=cid%>.withTransitiveTagKeys(tranTagKeys_<%=cid%>);
}
com.amazonaws.services.securitytoken.model.AssumeRoleResult assumeRoleResult_<%=cid%> = stsClient_<%=cid%>.assumeRole(assumeRoleRequest_<%=cid%>);
com.amazonaws.services.securitytoken.model.Credentials assumeRoleCred_<%=cid%> = assumeRoleResult_<%=cid%>.getCredentials();
com.amazonaws.auth.BasicSessionCredentials roleSessionCredentials_<%=cid%> =
new com.amazonaws.auth.BasicSessionCredentials(
assumeRoleCred_<%=cid%>.getAccessKeyId(),
assumeRoleCred_<%=cid%>.getSecretAccessKey(),
assumeRoleCred_<%=cid%>.getSessionToken());
credentialsProvider_<%=cid%> = new com.amazonaws.auth.AWSStaticCredentialsProvider(roleSessionCredentials_<%=cid%>);
<%
}

Some files were not shown because too many files have changed in this diff Show More