Upgraded all libraries, switched to npm, upgraded angular and jdk21
Locusworks Team/portal-webapp/pipeline/head There was a failure building this commit
Locusworks Team/portal-webapp/pipeline/head There was a failure building this commit
This commit is contained in:
1 parent
c2f8e20fad
commit
a6df549919
335 files changed
+10923
-12700
No files matched your search
@@ -0,0 +1,36 @@
|
||||
package net.locusworks.portal;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.security.web.session.HttpSessionEventPublisher;
|
||||
|
||||
import net.locusworks.portal.common.utils.Constants;
|
||||
|
||||
@SpringBootApplication
|
||||
public class PortalApplication {
|
||||
public static void main(String[] args) {
|
||||
initializePortalHome();
|
||||
SpringApplication.run(PortalApplication.class, args);
|
||||
}
|
||||
|
||||
private static void initializePortalHome() {
|
||||
var portalHome = Constants.getPortalHome();
|
||||
System.setProperty(Constants.PORTAL_HOME_PROPERTY, portalHome.toString());
|
||||
try {
|
||||
Files.createDirectories(portalHome);
|
||||
Files.createDirectories(portalHome.resolve("logs"));
|
||||
Files.createDirectories(portalHome.resolve("keys"));
|
||||
} catch (IOException ex) {
|
||||
throw new IllegalStateException("Unable to initialize portal home: " + portalHome, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
HttpSessionEventPublisher httpSessionEventPublisher() {
|
||||
return new HttpSessionEventPublisher();
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -42,7 +42,7 @@ public class PortalQuartzSchedulerConfig {
|
||||
public SchedulerFactoryBean schedulerFactory() {
|
||||
SchedulerFactoryBean factory = new SchedulerFactoryBean();
|
||||
factory.setAutoStartup(true);
|
||||
factory.setSchedulerName("NGAS Portal scheduler");
|
||||
factory.setSchedulerName("Locusworks Portal scheduler");
|
||||
factory.setOverwriteExistingJobs(true);
|
||||
factory.setJobFactory(jobFactory());
|
||||
return factory;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package net.locusworks.portal.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.web.header.writers.frameoptions.XFrameOptionsHeaderWriter;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
|
||||
import net.locusworks.portal.handlers.PortalAuthenticationFailureHandler;
|
||||
import net.locusworks.portal.handlers.PortalAuthenticationSuccessHandler;
|
||||
@@ -20,44 +19,34 @@ import net.locusworks.portal.providers.CustomAuthenticationProvider;
|
||||
*/
|
||||
@Configuration
|
||||
@EnableWebSecurity
|
||||
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
|
||||
@Autowired
|
||||
CustomAuthenticationProvider provider;
|
||||
public class WebSecurityConfig {
|
||||
|
||||
/***
|
||||
* Sets up the allowed pages and how to handle successful and failed login attempts
|
||||
*/
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http
|
||||
.csrf().disable()
|
||||
// See https://jira.springsource.org/browse/SPR-11496
|
||||
.headers().addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
|
||||
.and()
|
||||
.formLogin()
|
||||
@Bean
|
||||
SecurityFilterChain securityFilterChain(HttpSecurity http, CustomAuthenticationProvider provider) throws Exception {
|
||||
http
|
||||
.csrf(csrf -> csrf.disable())
|
||||
// AccountController authenticates programmatically. Retain the resulting
|
||||
// SecurityContext in the HTTP session for subsequent API requests.
|
||||
.securityContext(context -> context.requireExplicitSave(false))
|
||||
.headers(headers -> headers.frameOptions(frame -> frame.sameOrigin()))
|
||||
.formLogin(form -> form
|
||||
.successHandler(new PortalAuthenticationSuccessHandler()) // handle successful login
|
||||
.failureHandler(new PortalAuthenticationFailureHandler()) // handle failure login
|
||||
// specify our own login page rather than the default, this is what spring will forward to if an un-authenticated request come in
|
||||
.loginPage("/client/index.html")
|
||||
.loginProcessingUrl("/springLogin") // this is the magic spring page that we post our login request (there is no real page hint hint)
|
||||
.permitAll() // all users can access the login form
|
||||
.and()
|
||||
.logout()
|
||||
.permitAll())
|
||||
.logout(logout -> logout
|
||||
.logoutSuccessHandler(new PortalLogoutSuccessHandler()) // calls this on logout success
|
||||
.logoutUrl("/logout") // where the client should be redirected for logout, no file exists
|
||||
.permitAll()
|
||||
.and()
|
||||
.authorizeRequests()
|
||||
.antMatchers("/").permitAll()
|
||||
.antMatchers("/ws/**").permitAll()//allow to subscribe to stomp topics
|
||||
.antMatchers("/index.html").permitAll()
|
||||
.antMatchers("/assets/**").permitAll()
|
||||
.antMatchers("/account/isLoggedIn.do").permitAll()
|
||||
.antMatchers("/account/login.do").permitAll()
|
||||
.antMatchers("/client/**").permitAll()
|
||||
.anyRequest().authenticated()// all other URLs require just authenticated access
|
||||
.and()
|
||||
.authenticationProvider(provider); // our custom authenticator
|
||||
}
|
||||
}
|
||||
.permitAll())
|
||||
.authorizeHttpRequests(auth -> auth
|
||||
.requestMatchers("/", "/ws/**", "/index.html", "/assets/**", "/account/isLoggedIn.do", "/account/login.do", "/client/**").permitAll()
|
||||
.anyRequest().authenticated())
|
||||
.authenticationProvider(provider); // our custom authenticator
|
||||
return http.build();
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,20 @@
|
||||
package net.locusworks.portal.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.messaging.simp.config.ChannelRegistration;
|
||||
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
|
||||
import org.springframework.security.config.annotation.web.messaging.MessageSecurityMetadataSourceRegistry;
|
||||
import org.springframework.security.config.annotation.web.socket.AbstractSecurityWebSocketMessageBrokerConfigurer;
|
||||
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
|
||||
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.simp.config.ChannelRegistration;
|
||||
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
|
||||
import org.springframework.security.authorization.AuthorizationManager;
|
||||
import org.springframework.security.config.annotation.web.socket.EnableWebSocketSecurity;
|
||||
import org.springframework.security.messaging.access.intercept.MessageMatcherDelegatingAuthorizationManager;
|
||||
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
|
||||
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
|
||||
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
|
||||
import org.springframework.web.socket.config.annotation.WebSocketTransportRegistration;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.services.CommService;
|
||||
import net.locusworks.portal.websocket.WebsocketOutboundChannelInterceptor;
|
||||
@@ -21,16 +25,16 @@ import net.locusworks.portal.websocket.WebsocketOutboundChannelInterceptor;
|
||||
* @since 1.0.0-RELEASE
|
||||
* @version 1.0
|
||||
*/
|
||||
@Configuration
|
||||
@EnableWebSocketMessageBroker
|
||||
public class WebSocketConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer {
|
||||
@Configuration
|
||||
@EnableWebSocketMessageBroker
|
||||
@EnableWebSocketSecurity
|
||||
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
|
||||
|
||||
private static final Integer BUFFER_LIMIT = 512 * 1024;
|
||||
|
||||
private static ApplicationLogger logger = ApplicationLoggerFactory.getLogger(WebSocketConfig.class);
|
||||
|
||||
//Socks library uses version 1.1.4. The current library included with spring websockets is 1.0.0. need to override it with our current one
|
||||
public static final String SOCKS_1_1_4_LOCATION = "../../client/yarn_components/sockjs-client/dist/sockjs.min.js";
|
||||
private static final String SOCKJS_CLIENT_LOCATION = "/portal/client/vendor/sockjs.min.js";
|
||||
|
||||
//Define our allowed authorties
|
||||
private static String[] authorities = new String[] {
|
||||
@@ -47,28 +51,24 @@ public class WebSocketConfig extends AbstractSecurityWebSocketMessageBrokerConfi
|
||||
|
||||
@Override
|
||||
public void registerStompEndpoints(StompEndpointRegistry registry) {
|
||||
logger.info("Registering STOMP!");
|
||||
registry.addEndpoint(CommService.STOMP_ENDPOINT)
|
||||
.setAllowedOrigins("*")
|
||||
.withSockJS()
|
||||
.setClientLibraryUrl(SOCKS_1_1_4_LOCATION);
|
||||
logger.info("Registering STOMP!");
|
||||
registry.addEndpoint(CommService.STOMP_ENDPOINT)
|
||||
.withSockJS()
|
||||
.setClientLibraryUrl(SOCKJS_CLIENT_LOCATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureInbound(MessageSecurityMetadataSourceRegistry message) {
|
||||
message
|
||||
.nullDestMatcher().permitAll()
|
||||
@Bean
|
||||
AuthorizationManager<Message<?>> messageAuthorizationManager(
|
||||
MessageMatcherDelegatingAuthorizationManager.Builder messages) {
|
||||
messages
|
||||
.nullDestMatcher().permitAll()
|
||||
.simpSubscribeDestMatchers("/user/queue/pong").permitAll()
|
||||
.simpDestMatchers("/start/ping").permitAll()
|
||||
.simpDestMatchers("/app/**").hasAnyAuthority(authorities)
|
||||
.simpSubscribeDestMatchers(CommService.STOMP_TOPIC_PREFIX + "**").permitAll()
|
||||
.anyMessage().denyAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean sameOriginDisabled() {
|
||||
return true;
|
||||
}
|
||||
.simpSubscribeDestMatchers(CommService.STOMP_TOPIC_PREFIX + "**").permitAll()
|
||||
.anyMessage().denyAll();
|
||||
return messages.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureClientOutboundChannel(ChannelRegistration registration) {
|
||||
|
||||
+4
-4
@@ -4,8 +4,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.configuration.PropertiesManager;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.CredentialType;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ import org.springframework.web.context.request.WebRequest;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
|
||||
|
||||
import net.locusworks.common.exceptions.ApplicationException;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.objectmapper.ObjectMapperError;
|
||||
import net.locusworks.common.objectmapper.ObjectMapperHelper;
|
||||
import net.locusworks.portal.services.ApplicationLogService;
|
||||
|
||||
@@ -2,7 +2,7 @@ package net.locusworks.portal.controllers;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
@@ -61,9 +61,7 @@ public class FileController extends BaseController {
|
||||
|
||||
try(FileDownloadServletResponse fdsr = new FileDownloadServletResponse(response, rfr.getFileName())) {
|
||||
fdsr.sendFile(fileToDownload);
|
||||
} catch (InterruptedException ex) {
|
||||
logger.warn("File download was interrupted: %s", ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -104,4 +102,4 @@ public class FileController extends BaseController {
|
||||
throw (PortalException)ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
|
||||
@@ -7,9 +7,9 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory.LoggerInfo;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory.LoggerInfo;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
|
||||
@@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Success;
|
||||
import net.locusworks.portal.common.enums.PermissionType;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package net.locusworks.portal.extendedlogger;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.LogLevel;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.LogLevel;
|
||||
|
||||
/**
|
||||
* Extended the portal logger class to for specialized loggers such as the leak prevent and jsch
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
package net.locusworks.portal.extendedlogger;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.logger.LogLevel;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.LogLevel;
|
||||
|
||||
/**
|
||||
* Extended portal logger factory to create ExtendedApplicationLoggers to be used
|
||||
|
||||
+10
-3
@@ -3,8 +3,8 @@ package net.locusworks.portal.handlers;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.simp.stomp.StompHeaderAccessor;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
|
||||
import static net.locusworks.common.Charsets.UTF_8;
|
||||
|
||||
@@ -16,7 +16,14 @@ import static net.locusworks.common.Charsets.UTF_8;
|
||||
*/
|
||||
public abstract class AbstractObjectMessageHandler implements StompMessageHandler {
|
||||
|
||||
private String destination;
|
||||
private String destination;
|
||||
|
||||
protected AbstractObjectMessageHandler() {
|
||||
}
|
||||
|
||||
protected AbstractObjectMessageHandler(String destination) {
|
||||
this.destination = destination;
|
||||
}
|
||||
|
||||
private static ApplicationLogger logger = ApplicationLoggerFactory.getLogger(AbstractObjectMessageHandler.class);
|
||||
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@ import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.messaging.simp.broker.BrokerAvailabilityEvent;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.http.HttpClientHelper;
|
||||
import net.locusworks.portal.services.SchedulerService;
|
||||
import net.locusworks.portal.services.WebCommService;
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package net.locusworks.portal.handlers;
|
||||
|
||||
import static net.locusworks.portal.common.utils.Constants.PROPERTIES_FILE;
|
||||
import static net.locusworks.portal.common.utils.Constants.PROPERTIES_FILE;
|
||||
import static net.locusworks.portal.common.utils.Constants.getPortalHome;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
@@ -13,11 +15,11 @@ import java.util.stream.Collectors;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import net.locusworks.common.configuration.PropertiesManager;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory.LoggerInfo;
|
||||
import net.locusworks.common.logger.ApplicationLoggerInitializer;
|
||||
import net.locusworks.common.logger.LogLevel;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory.LoggerInfo;
|
||||
import net.locusworks.logger.ApplicationLoggerInitializer;
|
||||
import net.locusworks.logger.LogLevel;
|
||||
import net.locusworks.common.properties.OrderedProperties;
|
||||
import net.locusworks.portal.common.enums.Configuration;
|
||||
|
||||
@@ -37,13 +39,13 @@ public class LoggerInitializer implements ApplicationLoggerInitializer {
|
||||
|
||||
@Override
|
||||
public void loadLoggers() {
|
||||
File loggerFile = new File(String.format("%s/conf/%s", System.getProperty("catalina.base"), LOGGER_FILE));
|
||||
File loggerFile = new File(getPortalHome().toFile(), LOGGER_FILE);
|
||||
if (!loggerFile.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Properties conf = PropertiesManager.loadConfiguration(loggerFile);
|
||||
Properties conf = PropertiesManager.loadConfiguration(loggerFile.toPath());
|
||||
List<LoggerInfo> loggerInfo = conf.entrySet()
|
||||
.stream()
|
||||
.map(item -> new LoggerInfo(String.valueOf(item.getKey()), String.valueOf(item.getValue())))
|
||||
@@ -58,7 +60,7 @@ public class LoggerInitializer implements ApplicationLoggerInitializer {
|
||||
@Override
|
||||
public void saveLogLevels(Map<String, ApplicationLogger> loggers) {
|
||||
OrderedProperties conf = new OrderedProperties();
|
||||
File loggerFile = new File(String.format("%s/conf/%s", System.getProperty("catalina.base"), LOGGER_FILE));
|
||||
File loggerFile = new File(getPortalHome().toFile(), LOGGER_FILE);
|
||||
|
||||
loggers.entrySet()
|
||||
.stream()
|
||||
@@ -68,7 +70,12 @@ public class LoggerInitializer implements ApplicationLoggerInitializer {
|
||||
.sorted((item1, item2) -> item1.getName().compareTo(item2.getName()))
|
||||
.forEach(item -> conf.setProperty(item.getName(), item.getLogLevel().toName()));
|
||||
|
||||
try(FileOutputStream fos = new FileOutputStream(loggerFile)) {
|
||||
try {
|
||||
Files.createDirectories(loggerFile.toPath().getParent());
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
try(FileOutputStream fos = new FileOutputStream(loggerFile)) {
|
||||
conf.store(fos, "Portal Logger Levels");
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
@@ -79,8 +86,8 @@ public class LoggerInitializer implements ApplicationLoggerInitializer {
|
||||
public LogLevel initialize() {
|
||||
try {
|
||||
Properties defaults = PropertiesManager.loadConfiguration(this.getClass(), PROPERTIES_FILE);
|
||||
File patchRepoConfFile = new File(String.format("%s/conf/%s", System.getProperty("catalina.base"), PROPERTIES_FILE));
|
||||
Properties conf = PropertiesManager.loadConfiguration(patchRepoConfFile);
|
||||
File patchRepoConfFile = new File(getPortalHome().toFile(), PROPERTIES_FILE);
|
||||
Properties conf = PropertiesManager.loadConfiguration(patchRepoConfFile.toPath());
|
||||
|
||||
String logLevel = conf.getProperty(Configuration.LOG_LEVEL.getValue());
|
||||
if (StringUtils.isBlank(logLevel)) {
|
||||
@@ -94,4 +101,4 @@ public class LoggerInitializer implements ApplicationLoggerInitializer {
|
||||
throw new RuntimeException("Unable to get properites: ", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package net.locusworks.portal.handlers;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@ package net.locusworks.portal.handlers;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
|
||||
|
||||
+6
-6
@@ -1,18 +1,18 @@
|
||||
package net.locusworks.portal.handlers;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
|
||||
import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
|
||||
/**
|
||||
* Component to handle logout attempts
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
import net.locusworks.portal.common.services.AESService;
|
||||
import net.locusworks.portal.common.services.ConfigurationService;
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package net.locusworks.portal.handlers;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.handlers.AbstractObjectMessageHandler;
|
||||
import net.locusworks.portal.services.CommService;
|
||||
|
||||
@@ -20,7 +20,7 @@ public class SystemTriggerMessageHandler extends AbstractObjectMessageHandler {
|
||||
* Sets the destination to be the global system topic
|
||||
*/
|
||||
public SystemTriggerMessageHandler() {
|
||||
setDestination(CommService.getStompAccountTopic(CommService.STOMP_SYSTEM_TOPIC_SUFFIX));
|
||||
super(CommService.getStompAccountTopic(CommService.STOMP_SYSTEM_TOPIC_SUFFIX));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -25,8 +25,8 @@ import org.springframework.web.socket.sockjs.client.SockJsClient;
|
||||
import org.springframework.web.socket.sockjs.client.Transport;
|
||||
import org.springframework.web.socket.sockjs.client.WebSocketTransport;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.http.HttpClientHelper.HttpSchema;
|
||||
import net.locusworks.portal.common.services.ConfigurationService;
|
||||
import net.locusworks.portal.handlers.StompMessageHandler;
|
||||
@@ -141,7 +141,7 @@ public class SystemWebSocketHandler extends AbstractWebSocketHandler {
|
||||
String endpoint = String.format("%s://%s:%s/%s", schema == HttpSchema.HTTPS ? "wss" : "ws",
|
||||
endPoint.host, endPoint.port, "portal/ws/stomp");
|
||||
SockJsClient sockJsClient = new SockJsClient(transports);
|
||||
sockJsClient.doHandshake(this, endpoint);
|
||||
sockJsClient.execute(this, endpoint);
|
||||
|
||||
} catch (Exception ex) {
|
||||
logger.error("Unable to connect to stomp socket " + ex.getMessage(), ex);
|
||||
|
||||
+5
-5
@@ -6,8 +6,8 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -17,7 +17,7 @@ import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import net.locusworks.common.logger.LogLevel;
|
||||
import net.locusworks.logger.LogLevel;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.enums.EventType;
|
||||
import net.locusworks.portal.common.enums.TriggerType;
|
||||
@@ -27,8 +27,8 @@ import net.locusworks.portal.database.repos.ApplicationLogRepository;
|
||||
import net.locusworks.portal.json.ApplicationLogRequest;
|
||||
import net.locusworks.portal.json.ApplicationUserRequest;
|
||||
import net.locusworks.portal.json.PurgeLogRequest;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
|
||||
/**
|
||||
* Service that adds certain logs to the log database for viewing
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.springframework.messaging.simp.SimpMessagingTemplate;
|
||||
import org.springframework.messaging.support.MessageBuilder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.objectmapper.ObjectMapperError;
|
||||
import net.locusworks.common.objectmapper.ObjectMapperHelper;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
@@ -39,7 +39,7 @@ import javax.management.Query;
|
||||
public class CommService {
|
||||
public static final String STOMP_TOPIC_PREFIX = "/topic/";
|
||||
public static final String STOMP_QUEUE_PREFIX = "/queue/";
|
||||
public static final String STOMP_ENDPOINT = "/stomp";
|
||||
public static final String STOMP_ENDPOINT = "/ws/stomp";
|
||||
public static final String STOMP_ACCOUNT = "account|";
|
||||
public static final String STOMP_SYSTEM_TOPIC_SUFFIX = "system";
|
||||
|
||||
|
||||
@@ -219,7 +219,7 @@ public class CredentialService {
|
||||
throw PortalException.constraintViolation("Unable to find credentials uid of %s", request.getUid());
|
||||
}
|
||||
|
||||
boolean inUse = credRepo.inUse(creds.getUuid());
|
||||
boolean inUse = credRepo.credentialCount(creds.getUuid()) > 0;
|
||||
if (inUse) {
|
||||
throw PortalException.constraintViolation("Credential is in use. Please delete records that use this credentials then try again.");
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.quartz.Job;
|
||||
@@ -13,8 +13,8 @@ import org.quartz.JobExecutionContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.enums.FrequencyType;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
import net.locusworks.portal.common.services.ConfigurationService;
|
||||
|
||||
+9
-11
@@ -4,18 +4,18 @@ import java.sql.Driver;
|
||||
import java.sql.DriverManager;
|
||||
import java.util.Enumeration;
|
||||
|
||||
import javax.servlet.ServletContextEvent;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.PreDestroy;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.messaging.simp.SimpMessagingTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.ContextLoaderListener;
|
||||
|
||||
import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.PortalDataSource;
|
||||
import net.locusworks.portal.extendedlogger.ExtendedLoggerFactory;
|
||||
import net.locusworks.portal.handlers.LoggerInitializer;
|
||||
@@ -30,7 +30,7 @@ import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorFactory;
|
||||
* @version 1.0
|
||||
*/
|
||||
@Component
|
||||
public class PortalContextService extends ContextLoaderListener implements ApplicationListener<ContextRefreshedEvent> {
|
||||
public class PortalContextService implements ApplicationListener<ContextRefreshedEvent> {
|
||||
|
||||
private ClassLoaderLeakPreventor leakPreventor;
|
||||
|
||||
@@ -48,8 +48,8 @@ public class PortalContextService extends ContextLoaderListener implements Appli
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextInitialized(ServletContextEvent sce) {
|
||||
@PostConstruct
|
||||
public void contextInitialized() {
|
||||
// Initialize the logger;
|
||||
ApplicationLoggerFactory.init(new LoggerInitializer());
|
||||
try {
|
||||
@@ -58,18 +58,16 @@ public class PortalContextService extends ContextLoaderListener implements Appli
|
||||
leakPreventor = lpf.newLeakPreventor();
|
||||
} catch (Exception e) {}
|
||||
|
||||
super.contextInitialized(sce);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextDestroyed(ServletContextEvent sce) {
|
||||
@PreDestroy
|
||||
public void contextDestroyed() {
|
||||
ApplicationLoggerFactory.saveLogLevels();
|
||||
cleanUpJDBCDrivers();
|
||||
cleanUpDatasources();
|
||||
cleanUpSchedulerService();
|
||||
cleanUpThreads();
|
||||
resetSystemOut();
|
||||
super.contextDestroyed(sce);
|
||||
}
|
||||
|
||||
private void resetSystemOut() {
|
||||
|
||||
@@ -11,8 +11,8 @@ import org.apache.commons.io.FileUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.database.entities.ResourceFile;
|
||||
import net.locusworks.portal.database.repos.ResourceFileRepository;
|
||||
import net.locusworks.portal.json.ResourceFileRequest;
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import org.quartz.CalendarIntervalScheduleBuilder;
|
||||
import org.quartz.Job;
|
||||
@@ -27,8 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.enums.FrequencyType;
|
||||
import net.locusworks.portal.common.utils.DateService;
|
||||
import net.locusworks.portal.util.TaskScheduler;
|
||||
|
||||
@@ -13,12 +13,13 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
@@ -28,7 +29,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.jcraft.jsch.JSch;
|
||||
|
||||
import net.locusworks.common.logger.LogLevel;
|
||||
import net.locusworks.logger.LogLevel;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.enums.FrequencyType;
|
||||
import net.locusworks.portal.common.enums.ScriptType;
|
||||
@@ -80,8 +81,8 @@ import net.locusworks.portal.services.SendMailService.EmailMessageFormatter;
|
||||
import net.locusworks.portal.util.JSchHelper;
|
||||
import net.locusworks.portal.util.JSchResults;
|
||||
import net.locusworks.portal.util.JSchHelper.SCP_DIRECTION;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
|
||||
import static net.locusworks.common.utils.Constants.TRUE;
|
||||
import static net.locusworks.common.utils.Constants.EXIT_FAIL;
|
||||
@@ -652,8 +653,8 @@ public class ScriptService implements Job {
|
||||
String fromHost = scp.getFromHost();
|
||||
String toHost = scp.getToHost();
|
||||
|
||||
boolean fromLocal = StringUtils.startsWithIgnoreCase(fromHost, LOCAL_LOCATION);
|
||||
boolean toLocal = StringUtils.startsWithIgnoreCase(toHost, LOCAL_LOCATION);
|
||||
boolean fromLocal = Strings.CI.startsWith(fromHost, LOCAL_LOCATION);
|
||||
boolean toLocal = Strings.CI.startsWith(toHost, LOCAL_LOCATION);
|
||||
|
||||
JSchResults exitStatus = null;
|
||||
if (!fromLocal && toLocal) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package net.locusworks.portal.services;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@@ -7,20 +7,20 @@ import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.mail.Message;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Transport;
|
||||
import javax.mail.internet.AddressException;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import jakarta.mail.Message;
|
||||
import jakarta.mail.Session;
|
||||
import jakarta.mail.Transport;
|
||||
import jakarta.mail.internet.AddressException;
|
||||
import jakarta.mail.internet.InternetAddress;
|
||||
import jakarta.mail.internet.MimeMessage;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.mail.MailSendException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.logger.SystemDebugLogger;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.SystemDebugLogger;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
import net.locusworks.portal.common.services.AESService;
|
||||
|
||||
@@ -9,8 +9,8 @@ import java.util.stream.Collectors;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
import net.locusworks.portal.common.services.AESService;
|
||||
import net.locusworks.portal.database.entities.EmailTemplate;
|
||||
|
||||
+11
-9
@@ -10,18 +10,19 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import net.locusworks.common.crypto.HashSalt;
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.crypto.HashSalt;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.StreamUtils;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.exceptions.PortalException;
|
||||
@@ -75,8 +76,9 @@ public class UserSecurityService {
|
||||
@Autowired
|
||||
private UserPasswordTrackingRepository usrPwdTrkRepo;
|
||||
|
||||
@Autowired
|
||||
private CustomAuthenticationProvider provider;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private CustomAuthenticationProvider provider;
|
||||
|
||||
/**
|
||||
* Initialize the user security service upon server startup
|
||||
@@ -500,4 +502,4 @@ public class UserSecurityService {
|
||||
|
||||
return aur;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,8 @@ import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.portal.handlers.StompMessageHandler;
|
||||
import net.locusworks.portal.handlers.SystemWebSocketHandler;
|
||||
|
||||
|
||||
+8
-7
@@ -1,15 +1,16 @@
|
||||
package net.locusworks.portal.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpServletResponseWrapper;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletResponseWrapper;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
/**
|
||||
* Class to help download files
|
||||
* @author Isaac Parenteau
|
||||
@@ -69,7 +70,7 @@ public class FileDownloadServletResponse extends HttpServletResponseWrapper impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws Exception {
|
||||
public void close() throws IOException {
|
||||
super.getResponse().getOutputStream().close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,10 @@ import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.jgit.api.TransportConfigCallback;
|
||||
import org.eclipse.jgit.transport.CredentialsProvider;
|
||||
import org.eclipse.jgit.transport.JschConfigSessionFactory;
|
||||
import org.eclipse.jgit.transport.ssh.jsch.JschConfigSessionFactory;
|
||||
import org.eclipse.jgit.transport.SshTransport;
|
||||
import org.eclipse.jgit.transport.Transport;
|
||||
import org.eclipse.jgit.transport.OpenSshConfig.Host;
|
||||
import org.eclipse.jgit.transport.ssh.jsch.OpenSshConfig.Host;
|
||||
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
|
||||
import org.eclipse.jgit.util.FS;
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ import com.jcraft.jsch.ChannelExec;
|
||||
import com.jcraft.jsch.JSch;
|
||||
import com.jcraft.jsch.Session;
|
||||
|
||||
import net.locusworks.common.logger.ApplicationLogger;
|
||||
import net.locusworks.common.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.logger.ApplicationLogger;
|
||||
import net.locusworks.logger.ApplicationLoggerFactory;
|
||||
import net.locusworks.common.utils.Utils;
|
||||
import net.locusworks.portal.common.enums.CredentialType;
|
||||
import net.locusworks.portal.common.services.AESService;
|
||||
@@ -247,7 +247,7 @@ public class JSchHelper implements AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws Exception {
|
||||
public void close() {
|
||||
if(session != null && session.isConnected()) {
|
||||
session.disconnect();
|
||||
}
|
||||
@@ -466,4 +466,4 @@ public class JSchHelper implements AutoCloseable {
|
||||
}
|
||||
return b;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
spring.application.name=portal
|
||||
server.servlet.context-path=/portal
|
||||
server.servlet.session.timeout=540m
|
||||
spring.jpa.open-in-view=false
|
||||
spring.jpa.hibernate.ddl-auto=none
|
||||
spring.servlet.multipart.max-file-size=10MB
|
||||
spring.servlet.multipart.max-request-size=10MB
|
||||
@@ -8,8 +8,8 @@
|
||||
<Console name="ConsoleAppender" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="${logFormat}" />
|
||||
</Console>
|
||||
<RollingFile name="portalLogger" fileName="${sys:catalina.base}/logs/portal.log"
|
||||
filePattern="${sys:catalina.base}/logs/portal-%d{yyyy-MM-dd}.log.gz">
|
||||
<RollingFile name="portalLogger" fileName="${sys:portal.home}/logs/portal.log"
|
||||
filePattern="${sys:portal.home}/logs/portal-%d{yyyy-MM-dd}.log.gz">
|
||||
<PatternLayout pattern="${logFormat}" />
|
||||
<Policies>
|
||||
<TimeBasedTriggeringPolicy />
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
userExpirationDays=3650
|
||||
logLevel=INFO
|
||||
dbHost=localhost
|
||||
dbType=h2
|
||||
h2Url=jdbc:h2:file:${portal.home}/data/portal;MODE=MySQL;DATABASE_TO_LOWER=TRUE;DEFAULT_NULL_ORDERING=HIGH;NON_KEYWORDS=VALUE;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS portal
|
||||
h2Username=sa
|
||||
h2Password=
|
||||
dbHost=localhost
|
||||
dbPort=3306
|
||||
dbUsername=portalAdmin
|
||||
dbPassword=VWUPJBKSje2S8J/YMdx15QhhRMRsy39URVR6c6ksrtE\=
|
||||
@@ -8,4 +12,4 @@ dbRootUser=root
|
||||
dbRootPassword=VvzxDy5E1o1Q8rL7XMO2mQ\=\=
|
||||
caCertFile=${user.home}/cacerts.jks
|
||||
caCertPassword=N/OQnJ9uQh1oYxadwGC3vA==
|
||||
aesSeedFile=${catalina.base}/conf/portal.tomcat
|
||||
aesSeedFile=${portal.home}/portal.tomcat
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<Context antiJARLocking="true" antiResourceLocking="true" docBase="portal" path="/portal_webapp">
|
||||
<!-- Default set of monitored resources -->
|
||||
<WatchedResource>WEB-INF/web.xml</WatchedResource>
|
||||
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
|
||||
<Manager pathname=""/>
|
||||
<!-- Uncomment this to enable Comet connection tacking (provides events
|
||||
on session expiration as well as webapp lifecycle) -->
|
||||
<!--
|
||||
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
|
||||
-->
|
||||
</Context>
|
||||
@@ -1,58 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:websocket="http://www.springframework.org/schema/websocket"
|
||||
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.2.xsd
|
||||
http://www.springframework.org/schema/mvc
|
||||
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
|
||||
http://www.springframework.org/schema/util
|
||||
http://www.springframework.org/schema/util/spring-util-3.2.xsd
|
||||
http://www.springframework.org/schema/task
|
||||
http://www.springframework.org/schema/task/spring-task-3.2.xsd
|
||||
http://www.springframework.org/schema/websocket
|
||||
http://www.springframework.org/schema/websocket/spring-websocket-4.0.xsd">
|
||||
|
||||
<!-- declares explicit support for annotation-driven MVC controllers (i.e.
|
||||
@RequestMapping, @Controller, although support for those is the default behaviour),
|
||||
as well as adding support for declarative validation via @Valid and message
|
||||
body marshalling with @RequestBody/ResponseBody. -->
|
||||
<mvc:annotation-driven />
|
||||
|
||||
<mvc:resources mapping="/assets/**" location="/assets/" />
|
||||
|
||||
<!-- If the client sends a defaultLocale cookie with a request, any error
|
||||
messages generated by the request will be returned in the specified language -->
|
||||
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
|
||||
<property name="cookieName" value="locale" />
|
||||
<property name="defaultLocale" value="en" />
|
||||
</bean>
|
||||
|
||||
<bean
|
||||
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
||||
<property name="prefix">
|
||||
<value>/view/</value>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<value>.jsp</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
||||
<property name="maxUploadSize" value="16777215" />
|
||||
</bean>
|
||||
|
||||
<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> -->
|
||||
|
||||
<!-- Scans the classpath for annotated components that will be auto-registered
|
||||
as Spring beans -->
|
||||
<context:component-scan base-package="net.locusworks.portal" />
|
||||
|
||||
<!-- perform flyway migration -->
|
||||
<bean id="migration" class="net.locusworks.portal.migration.util.MigrationManager" init-method="migrate"/>
|
||||
|
||||
</beans>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:websocket="http://www.springframework.org/schema/websocket"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xmlns:task="http://www.springframework.org/schema/task"
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.2.xsd
|
||||
http://www.springframework.org/schema/mvc
|
||||
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
|
||||
http://www.springframework.org/schema/util
|
||||
http://www.springframework.org/schema/util/spring-util-3.2.xsd
|
||||
http://www.springframework.org/schema/task
|
||||
http://www.springframework.org/schema/task/spring-task-3.2.xsd
|
||||
http://www.springframework.org/schema/websocket
|
||||
http://www.springframework.org/schema/websocket/spring-websocket-4.0.xsd">
|
||||
|
||||
|
||||
</beans>
|
||||
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
|
||||
<display-name>NG Portal</display-name>
|
||||
<servlet>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
<async-supported>true</async-supported>
|
||||
</servlet>
|
||||
<listener>
|
||||
<listener-class>net.locusworks.portal.services.PortalContextService</listener-class>
|
||||
</listener>
|
||||
<!-- HttpSessionEventPublisher converts session events to a Spring event -->
|
||||
<!-- and publishes the event to the ApplicationContext. -->
|
||||
<listener>
|
||||
<listener-class>
|
||||
org.springframework.security.web.session.HttpSessionEventPublisher
|
||||
</listener-class>
|
||||
</listener>
|
||||
<filter>
|
||||
<filter-name>springSecurityFilterChain</filter-name>
|
||||
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
|
||||
<async-supported>true</async-supported>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>springSecurityFilterChain</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
<servlet-mapping>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<url-pattern>/ws/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<url-pattern>*.do</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<url-pattern>*.view</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<url-pattern>*.resf</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>portal</servlet-name>
|
||||
<url-pattern>*.pdf</url-pattern>
|
||||
</servlet-mapping>
|
||||
<session-config>
|
||||
<session-timeout>540</session-timeout>
|
||||
</session-config>
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>/WEB-INF/portal-config.xml</param-value>
|
||||
</context-param>
|
||||
</web-app>
|
||||
Reference in new issue
Block a user