From ff3db5669a5d7400f144fa860584278f969f15ac Mon Sep 17 00:00:00 2001 From: Ermis Wieger Date: Mon, 19 Aug 2024 09:56:19 +0200 Subject: [PATCH 1/5] env container --- backend/pom.xml | 19 ++++++- .../com/nttdata/calender/ApiApplication.java | 17 ++++++ .../nttdata/calender/ApplicationConfig.java | 56 +++++++++++++++++++ .../nttdata/calender/api/RemedyJavaAPI.java | 24 ++++++-- .../calender/api/RequestInterceptor.java | 10 +++- .../calender/api/rsso/RssoInterceptor.java | 7 ++- .../application-container.properties | 1 + .../resources/application-local.properties | 6 ++ .../main/resources/application-xxx.properties | 5 ++ .../src/main/resources/application.properties | 1 + 10 files changed, 137 insertions(+), 9 deletions(-) create mode 100644 backend/src/main/java/com/nttdata/calender/ApplicationConfig.java create mode 100644 backend/src/main/resources/application-container.properties create mode 100644 backend/src/main/resources/application-local.properties create mode 100644 backend/src/main/resources/application-xxx.properties diff --git a/backend/pom.xml b/backend/pom.xml index 7fd7d06..179e5dd 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -17,7 +17,23 @@ spring-boot-starter-parent 2.7.8 - + + + local + + true + + + local + + + + container + + container + + + 11 @@ -173,5 +189,6 @@ + diff --git a/backend/src/main/java/com/nttdata/calender/ApiApplication.java b/backend/src/main/java/com/nttdata/calender/ApiApplication.java index 8526a15..df10cbf 100644 --- a/backend/src/main/java/com/nttdata/calender/ApiApplication.java +++ b/backend/src/main/java/com/nttdata/calender/ApiApplication.java @@ -8,11 +8,16 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.session.MapSessionRepository; +import javax.annotation.PostConstruct; @SpringBootApplication public class ApiApplication extends SpringBootServletInitializer { + // @org.springframework.beans.factory.annotation.Value("${greeting.message}") + // private String greetingMessage; + public static void main(String[] args) { + //System.out.println(greetingMessage); SpringApplication.run(ApiApplication.class, args); } @@ -36,4 +41,16 @@ public class ApiApplication extends SpringBootServletInitializer { public MapSessionRepository sessionRepository() { return new MapSessionRepository(new ConcurrentHashMap<>()); } + + // @Bean + // public String greetingMessage() { + // return greetingMessage; + // } + + // @PostConstruct + // public void printEnvValues(){ + // System.out.println("Print environment values"); + // System.out.println("$$$$$$$"+greetingMessage); + + // } } diff --git a/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java b/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java new file mode 100644 index 0000000..8f20966 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java @@ -0,0 +1,56 @@ +package com.nttdata.calender; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.stereotype.Service; + +import org.springframework.beans.factory.annotation.Value; + +/** + * Java API for Remedy + */ +@Service +public class ApplicationConfig { + + @Value("${rssoActive}") + private Boolean rssoActive; + + public Boolean getRssoActive() { + if(rssoActive==null) + return true; + + return rssoActive; + } + + @Value("${arserver}") + private String arserver; + + public String getArserver() { + return arserver; + } + + @Value("${arport}") + private Integer arport; + + public Integer getArport() { + return arport; + } + + @Value("${aruser}") + private String aruser; + + public String getAruser() { + return aruser; + } + + @Value("${arpassword}") + private String arpassword; + + public String getArpassword() { + return arpassword; + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java index cebe13d..93264a2 100644 --- a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java +++ b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java @@ -24,6 +24,9 @@ import com.nttdata.calender.errorhandling.ErrorTypes.NotFoundError; import com.nttdata.calender.states.State; import com.nttdata.calender.supportgroup.SupportGroup; +import org.springframework.beans.factory.annotation.Autowired; +import com.nttdata.calender.ApplicationConfig; + /** * Java API for Remedy */ @@ -35,17 +38,24 @@ public class RemedyJavaAPI { private static Logger applicationLogger = LogManager.getLogger("application"); // TODO: work with form CTM:Support Group private static final String QUALSTR = "\'Request ID\' != \"\""; + private ApplicationConfig appConfig; + + // @org.springframework.beans.factory.annotation.Value("${greeting.message}") + // private String greetingMessage; /** * Sets up the Remedy API with the server and admin user/password. */ - public RemedyJavaAPI() throws ARException, NotFoundError { + + public RemedyJavaAPI(ApplicationConfig appConfig) throws ARException, NotFoundError { + this.appConfig=appConfig; + System.out.println(appConfig.getRssoActive()); server = new ARServerUser(); // server.setServer("itsm-app-dev.asfinag.at"); - server.setServer("itsm-app-dev-neu.asfinag.at"); - server.setUser("changecalender_integration"); - server.setPassword("VXrvLm4q#8P#MXthfZNc"); - server.setPort(46262); + server.setServer(this.appConfig.getArserver()); + server.setUser(this.appConfig.getAruser()); + server.setPassword(this.appConfig.getArpassword()); + server.setPort(this.appConfig.getArport()); // server.setPort(50000); this.connect(); @@ -75,6 +85,10 @@ public class RemedyJavaAPI { * @throws ARException when the user is unknown */ public void impersonateUser(String userName) throws ARException { + + if(!this.appConfig.rssoActive) + server.impersonateUser("WuiQualityKV"); + server.impersonateUser(userName); } diff --git a/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java index 6dd62e2..0d224f4 100644 --- a/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java +++ b/backend/src/main/java/com/nttdata/calender/api/RequestInterceptor.java @@ -3,6 +3,7 @@ package com.nttdata.calender.api; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.stereotype.Component; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; @@ -27,14 +28,21 @@ import java.util.List; @Component public class RequestInterceptor implements HandlerInterceptor { + + + // @org.springframework.beans.factory.annotation.Value("${greeting.message}") + // private String greetingMessage; + + @Autowired private RemedyJavaAPI api; + private static final String FORM_NAME = "ASF:CHG_CAL_Transactions"; private static final Logger logger = LogManager.getLogger("application"); private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - api = new RemedyJavaAPI(); + //api = new RemedyJavaAPI(greetingMessage); String currentDateTime = LocalDateTime.now().format(dateTimeFormatter); long transactionId = System.currentTimeMillis(); String out = String.format("Transaction ID = %d %s - handling request: %s", transactionId, currentDateTime, request.getRequestURI()); diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java index 8d7f562..144c0f7 100644 --- a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java @@ -9,6 +9,7 @@ import org.springframework.web.servlet.HandlerInterceptor; import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired; +import com.nttdata.calender.ApplicationConfig; /** * Interceptor for handling Rsso related operations. */ @@ -17,10 +18,12 @@ public class RssoInterceptor implements HandlerInterceptor { private final static boolean DEBUG = true; private final Rsso rsso; private static final Logger applicationLogger = LogManager.getLogger("application"); + private ApplicationConfig appConfig; @Autowired - public RssoInterceptor(Rsso rsso) { + public RssoInterceptor(Rsso rsso, ApplicationConfig appConfig) { this.rsso = rsso; + this.appConfig=appConfig; } /** @@ -39,7 +42,7 @@ public class RssoInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // Check if a session exists, create one if not - if (DEBUG) { + if (!this.appConfig.getRssoActive()) { return true; } diff --git a/backend/src/main/resources/application-container.properties b/backend/src/main/resources/application-container.properties new file mode 100644 index 0000000..e9b09c7 --- /dev/null +++ b/backend/src/main/resources/application-container.properties @@ -0,0 +1 @@ +rssoActive=true \ No newline at end of file diff --git a/backend/src/main/resources/application-local.properties b/backend/src/main/resources/application-local.properties new file mode 100644 index 0000000..4225ce2 --- /dev/null +++ b/backend/src/main/resources/application-local.properties @@ -0,0 +1,6 @@ +rssoActive=false +arserver=itsm-app-dev-neu.asfinag.at +# arserver=${test} +arport=46262 +aruser=changecalender_integration +arpassword="VXrvLm4q#8P#MXthfZNc" \ No newline at end of file diff --git a/backend/src/main/resources/application-xxx.properties b/backend/src/main/resources/application-xxx.properties new file mode 100644 index 0000000..3d4006f --- /dev/null +++ b/backend/src/main/resources/application-xxx.properties @@ -0,0 +1,5 @@ +rssoActive=false +arserver=slwien4dev +arport=2000 +aruser=Demo +arpassword=ars$adm1 \ No newline at end of file diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index c239ca1..3b79e14 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -1,3 +1,4 @@ #server.servlet.context-path=/test server.servlet.session.timeout=24h # server.port=${PROBE_PORT:8080} +spring.profiles.active=@spring.profiles.active@ From 2434faa96231e06dffd946f9ba77bd65282c114d Mon Sep 17 00:00:00 2001 From: Ermis Wieger Date: Mon, 19 Aug 2024 10:21:30 +0200 Subject: [PATCH 2/5] fix --- .../main/java/com/nttdata/calender/ApplicationConfig.java | 4 ++-- .../main/java/com/nttdata/calender/api/RemedyJavaAPI.java | 2 +- backend/src/main/resources/application-xxx.properties | 5 ----- 3 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 backend/src/main/resources/application-xxx.properties diff --git a/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java b/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java index 8f20966..6b7be7b 100644 --- a/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java +++ b/backend/src/main/java/com/nttdata/calender/ApplicationConfig.java @@ -20,9 +20,9 @@ public class ApplicationConfig { private Boolean rssoActive; public Boolean getRssoActive() { - if(rssoActive==null) + if(this.rssoActive==null) return true; - + return rssoActive; } diff --git a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java index 93264a2..575df19 100644 --- a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java +++ b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java @@ -86,7 +86,7 @@ public class RemedyJavaAPI { */ public void impersonateUser(String userName) throws ARException { - if(!this.appConfig.rssoActive) + if(!this.appConfig.getRssoActive()) server.impersonateUser("WuiQualityKV"); server.impersonateUser(userName); diff --git a/backend/src/main/resources/application-xxx.properties b/backend/src/main/resources/application-xxx.properties deleted file mode 100644 index 3d4006f..0000000 --- a/backend/src/main/resources/application-xxx.properties +++ /dev/null @@ -1,5 +0,0 @@ -rssoActive=false -arserver=slwien4dev -arport=2000 -aruser=Demo -arpassword=ars$adm1 \ No newline at end of file From 9573f422a60316f32dcc7b7070eeb56d23c07ae1 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Mon, 19 Aug 2024 14:59:21 +0200 Subject: [PATCH 3/5] fixed passw --- backend/src/main/resources/application-local.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/resources/application-local.properties b/backend/src/main/resources/application-local.properties index 4225ce2..505dc81 100644 --- a/backend/src/main/resources/application-local.properties +++ b/backend/src/main/resources/application-local.properties @@ -3,4 +3,4 @@ arserver=itsm-app-dev-neu.asfinag.at # arserver=${test} arport=46262 aruser=changecalender_integration -arpassword="VXrvLm4q#8P#MXthfZNc" \ No newline at end of file +arpassword=VXrvLm4q#8P#MXthfZNc \ No newline at end of file From 5137fffb5622650c0036ed6250922975e4c78ac8 Mon Sep 17 00:00:00 2001 From: Ermis Wieger Date: Tue, 20 Aug 2024 12:16:55 +0200 Subject: [PATCH 4/5] refactored imporsanate user --- .../main/java/com/nttdata/calender/api/RemedyJavaAPI.java | 4 ---- .../com/nttdata/calender/api/rsso/RssoInterceptor.java | 7 ++++++- .../main/java/com/nttdata/calender/approval/Approval.java | 4 ++-- .../main/java/com/nttdata/calender/presets/Presets.java | 2 +- .../com/nttdata/calender/supportgroup/SupportGroup.java | 4 ++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java index 575df19..2189d13 100644 --- a/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java +++ b/backend/src/main/java/com/nttdata/calender/api/RemedyJavaAPI.java @@ -85,10 +85,6 @@ public class RemedyJavaAPI { * @throws ARException when the user is unknown */ public void impersonateUser(String userName) throws ARException { - - if(!this.appConfig.getRssoActive()) - server.impersonateUser("WuiQualityKV"); - server.impersonateUser(userName); } diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java index 144c0f7..73a9f4e 100644 --- a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java @@ -10,6 +10,7 @@ import org.springframework.web.servlet.HandlerInterceptor; import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired; import com.nttdata.calender.ApplicationConfig; +import com.nttdata.calender.api.RemedyJavaAPI; /** * Interceptor for handling Rsso related operations. */ @@ -19,11 +20,14 @@ public class RssoInterceptor implements HandlerInterceptor { private final Rsso rsso; private static final Logger applicationLogger = LogManager.getLogger("application"); private ApplicationConfig appConfig; + //EW env Fix + private final RemedyJavaAPI javaAPI; @Autowired - public RssoInterceptor(Rsso rsso, ApplicationConfig appConfig) { + public RssoInterceptor(Rsso rsso, ApplicationConfig appConfig, RemedyJavaAPI javaAPI) { this.rsso = rsso; this.appConfig=appConfig; + this.javaAPI=javaAPI; } /** @@ -43,6 +47,7 @@ public class RssoInterceptor implements HandlerInterceptor { throws Exception { // Check if a session exists, create one if not if (!this.appConfig.getRssoActive()) { + this.javaAPI.impersonateUser("WuiQualityKV"); return true; } diff --git a/backend/src/main/java/com/nttdata/calender/approval/Approval.java b/backend/src/main/java/com/nttdata/calender/approval/Approval.java index f843d82..5ab33bf 100644 --- a/backend/src/main/java/com/nttdata/calender/approval/Approval.java +++ b/backend/src/main/java/com/nttdata/calender/approval/Approval.java @@ -49,8 +49,8 @@ public class Approval { public String update(ApprovalUpdateRequest request) throws ARException { // Clear the list before processing a new request listOfFieldValues.clear(); - - remedyJavaAPI.impersonateUser("WuiQualityKV"); + + //remedyJavaAPI.impersonateUser("WuiQualityKV"); String action = "APPROVAL"; var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions") diff --git a/backend/src/main/java/com/nttdata/calender/presets/Presets.java b/backend/src/main/java/com/nttdata/calender/presets/Presets.java index 8dac690..f2f646e 100644 --- a/backend/src/main/java/com/nttdata/calender/presets/Presets.java +++ b/backend/src/main/java/com/nttdata/calender/presets/Presets.java @@ -58,7 +58,7 @@ public class Presets { this.presets = new ArrayList<>(); this.listOfFieldValues = new ArrayList<>(); - api.impersonateUser("WuiQualityKV"); + //api.impersonateUser("WuiQualityKV"); } /** diff --git a/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java index e8972c4..b141862 100644 --- a/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java +++ b/backend/src/main/java/com/nttdata/calender/supportgroup/SupportGroup.java @@ -51,7 +51,7 @@ public class SupportGroup { */ public void querySupportGroups(RemedyJavaAPI api) throws ARException, NotFoundError { - api.impersonateUser("WuiQualityKV"); + //api.impersonateUser("WuiQualityKV"); applicationLogger.info("\n\n\nRequest: querySupportGroups (Initial)\nUser: " + api.getUser() + "\nAdmin? " + (api.isAdministrator() ? "Yes" : "No")); @@ -112,7 +112,7 @@ public class SupportGroup { * @throws ARException if an error occurs during the query */ public void queryUserSupportGroup(RemedyJavaAPI api) throws ARException { - api.impersonateUser("WuiQualityKV"); + //api.impersonateUser("WuiQualityKV"); var querySupportGroups = new Query.QueryBuilder("CTM:Support Group Association") .addFieldId("SupportGroupId", 1000000079).build(); From 6e287331f9827a498a148aa815243eea2f4e937c Mon Sep 17 00:00:00 2001 From: Ermis Wieger Date: Tue, 20 Aug 2024 12:36:29 +0200 Subject: [PATCH 5/5] cleanup fix --- .../java/com/nttdata/calender/ApiApplication.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/ApiApplication.java b/backend/src/main/java/com/nttdata/calender/ApiApplication.java index df10cbf..ce7cc80 100644 --- a/backend/src/main/java/com/nttdata/calender/ApiApplication.java +++ b/backend/src/main/java/com/nttdata/calender/ApiApplication.java @@ -17,7 +17,6 @@ public class ApiApplication extends SpringBootServletInitializer { // private String greetingMessage; public static void main(String[] args) { - //System.out.println(greetingMessage); SpringApplication.run(ApiApplication.class, args); } @@ -41,16 +40,4 @@ public class ApiApplication extends SpringBootServletInitializer { public MapSessionRepository sessionRepository() { return new MapSessionRepository(new ConcurrentHashMap<>()); } - - // @Bean - // public String greetingMessage() { - // return greetingMessage; - // } - - // @PostConstruct - // public void printEnvValues(){ - // System.out.println("Print environment values"); - // System.out.println("$$$$$$$"+greetingMessage); - - // } }