This is an automated email from the ASF dual-hosted git repository. bossenti pushed a commit to branch add-checkstyle-streampipes-service in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 03fca261510f756c1c57e40cd174f755c119b925 Author: bossenti <[email protected]> AuthorDate: Sun Dec 4 17:06:34 2022 +0100 add checkstyle to streampipes-service-extension-base --- streampipes-service-extensions-base/pom.xml | 25 ++++- .../base/StreamPipesExtensionsServiceBase.java | 111 +++++++++++---------- .../service/extensions/base/WebSecurityConfig.java | 37 +++---- ...StreamPipesClientRuntimeConnectionResolver.java | 13 +-- .../base/security/TokenAuthenticationFilter.java | 6 +- .../base/security/UnauthenticatedInterfaces.java | 12 +-- 6 files changed, 119 insertions(+), 85 deletions(-) diff --git a/streampipes-service-extensions-base/pom.xml b/streampipes-service-extensions-base/pom.xml index 5570442fe..0095048bc 100644 --- a/streampipes-service-extensions-base/pom.xml +++ b/streampipes-service-extensions-base/pom.xml @@ -17,7 +17,8 @@ ~ --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>streampipes-parent</artifactId> <groupId>org.apache.streampipes</groupId> @@ -50,4 +51,26 @@ <maven.compiler.target>8</maven.compiler.target> </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <executions> + <execution> + <id>validate</id> + <phase>validate</phase> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + <configuration> + <logViolationsToConsole>true</logViolationsToConsole> + <failOnViolation>true</failOnViolation> + </configuration> + </plugin> + </plugins> + </build> + </project> diff --git a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/StreamPipesExtensionsServiceBase.java b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/StreamPipesExtensionsServiceBase.java index 19b02f3b8..0aedabe10 100644 --- a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/StreamPipesExtensionsServiceBase.java +++ b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/StreamPipesExtensionsServiceBase.java @@ -18,78 +18,83 @@ package org.apache.streampipes.service.extensions.base; -import org.apache.streampipes.service.base.BaseNetworkingConfig; -import org.apache.streampipes.service.base.StreamPipesServiceBase; import org.apache.streampipes.container.init.DeclarersSingleton; import org.apache.streampipes.container.model.SpServiceDefinition; +import org.apache.streampipes.service.base.BaseNetworkingConfig; +import org.apache.streampipes.service.base.StreamPipesServiceBase; import org.apache.streampipes.svcdiscovery.api.model.DefaultSpServiceGroups; import org.apache.streampipes.svcdiscovery.api.model.SpServiceTag; import org.apache.streampipes.svcdiscovery.api.model.SpServiceTagPrefix; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.PreDestroy; + import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; public abstract class StreamPipesExtensionsServiceBase extends StreamPipesServiceBase { - private static final Logger LOG = LoggerFactory.getLogger(StreamPipesExtensionsServiceBase.class); - - public void init() { - SpServiceDefinition serviceDef = provideServiceDefinition(); - init(serviceDef); + private static final Logger LOG = LoggerFactory.getLogger(StreamPipesExtensionsServiceBase.class); + + public void init() { + SpServiceDefinition serviceDef = provideServiceDefinition(); + init(serviceDef); + } + + public void init(SpServiceDefinition serviceDef) { + try { + BaseNetworkingConfig networkingConfig = BaseNetworkingConfig.defaultResolution(serviceDef.getDefaultPort()); + String serviceId = serviceDef.getServiceGroup() + "-" + AUTO_GENERATED_SERVICE_ID; + serviceDef.setServiceId(serviceId); + DeclarersSingleton.getInstance().populate(networkingConfig.getHost(), networkingConfig.getPort(), serviceDef); + + startExtensionsService(this.getClass(), serviceDef, networkingConfig); + } catch (UnknownHostException e) { + LOG.error( + "Could not auto-resolve host address - " + + "please manually provide the hostname using the SP_HOST environment variable"); } - - public void init(SpServiceDefinition serviceDef) { - try { - BaseNetworkingConfig networkingConfig = BaseNetworkingConfig.defaultResolution(serviceDef.getDefaultPort()); - String serviceId = serviceDef.getServiceGroup() + "-" + AUTO_GENERATED_SERVICE_ID; - serviceDef.setServiceId(serviceId); - DeclarersSingleton.getInstance().populate(networkingConfig.getHost(), networkingConfig.getPort(), serviceDef); - - startExtensionsService(this.getClass(), serviceDef, networkingConfig); - } catch (UnknownHostException e) { - LOG.error("Could not auto-resolve host address - please manually provide the hostname using the SP_HOST environment variable"); - } + } + + public SpServiceDefinition provideServiceDefinition() { + return null; + } + + public abstract void afterServiceRegistered(SpServiceDefinition serviceDef); + + public void startExtensionsService(Class<?> serviceClass, + SpServiceDefinition serviceDef, + BaseNetworkingConfig networkingConfig) throws UnknownHostException { + this.startStreamPipesService( + serviceClass, + DefaultSpServiceGroups.EXT, + serviceId(), + networkingConfig + ); + this.afterServiceRegistered(serviceDef); + } + + @Override + protected List<SpServiceTag> getServiceTags() { + List<SpServiceTag> tags = new ArrayList<>(); + if (DeclarersSingleton.getInstance().getServiceDefinition() != null) { + tags.add(SpServiceTag.create(SpServiceTagPrefix.SP_GROUP, + DeclarersSingleton.getInstance().getServiceDefinition().getServiceGroup())); } + tags.addAll(getExtensionsServiceTags()); + return tags; + } - public SpServiceDefinition provideServiceDefinition() { - return null; - } - - public abstract void afterServiceRegistered(SpServiceDefinition serviceDef); - - public void startExtensionsService(Class<?> serviceClass, - SpServiceDefinition serviceDef, - BaseNetworkingConfig networkingConfig) throws UnknownHostException { - this.startStreamPipesService( - serviceClass, - DefaultSpServiceGroups.EXT, - serviceId(), - networkingConfig - ); - this.afterServiceRegistered(serviceDef); - } + protected abstract List<SpServiceTag> getExtensionsServiceTags(); - @Override - protected List<SpServiceTag> getServiceTags() { - List<SpServiceTag> tags = new ArrayList<>(); - if (DeclarersSingleton.getInstance().getServiceDefinition() != null) { - tags.add(SpServiceTag.create(SpServiceTagPrefix.SP_GROUP, DeclarersSingleton.getInstance().getServiceDefinition().getServiceGroup())); - } - tags.addAll(getExtensionsServiceTags()); - return tags; - } + @PreDestroy + public abstract void onExit(); - protected abstract List<SpServiceTag> getExtensionsServiceTags(); - - @PreDestroy - public abstract void onExit(); - - public String serviceId() { - return DeclarersSingleton.getInstance().getServiceId(); - } + public String serviceId() { + return DeclarersSingleton.getInstance().getServiceId(); + } } diff --git a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/WebSecurityConfig.java b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/WebSecurityConfig.java index ada8748ea..6eaa7cf6a 100644 --- a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/WebSecurityConfig.java +++ b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/WebSecurityConfig.java @@ -22,6 +22,7 @@ import org.apache.streampipes.commons.constants.Envs; import org.apache.streampipes.service.base.security.UnauthorizedRequestEntryPoint; import org.apache.streampipes.service.extensions.base.security.TokenAuthenticationFilter; import org.apache.streampipes.service.extensions.base.security.UnauthenticatedInterfaces; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -56,23 +57,24 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { if (isAnonymousAccess()) { http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .csrf().disable() - .formLogin().disable() - .httpBasic().disable().authorizeRequests().antMatchers("/**").permitAll(); + .and() + .csrf().disable() + .formLogin().disable() + .httpBasic().disable().authorizeRequests().antMatchers("/**").permitAll(); } else { http - .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .csrf().disable() - .formLogin().disable() - .httpBasic().disable() - .exceptionHandling() - .authenticationEntryPoint(new UnauthorizedRequestEntryPoint()) - .and() - .authorizeRequests() - .antMatchers(UnauthenticatedInterfaces.get().toArray(new String[0])).permitAll() - .anyRequest().authenticated().and().addFilterBefore(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); + .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) + .and() + .csrf().disable() + .formLogin().disable() + .httpBasic().disable() + .exceptionHandling() + .authenticationEntryPoint(new UnauthorizedRequestEntryPoint()) + .and() + .authorizeRequests() + .antMatchers(UnauthenticatedInterfaces.get().toArray(new String[0])).permitAll() + .anyRequest().authenticated().and() + .addFilterBefore(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); } } @@ -82,8 +84,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { LOG.info("Configured service for authenticated access mode"); return false; } else { - LOG.warn("No env variable {} provided, which is required for authenticated access. Defaulting to anonymous access.", - Envs.SP_JWT_PUBLIC_KEY_LOC.getEnvVariableName()); + LOG.warn( + "No env variable {} provided, which is required for authenticated access. Defaulting to anonymous access.", + Envs.SP_JWT_PUBLIC_KEY_LOC.getEnvVariableName()); return true; } } else { diff --git a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/client/StreamPipesClientRuntimeConnectionResolver.java b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/client/StreamPipesClientRuntimeConnectionResolver.java index d90b8f963..06f5ea45b 100644 --- a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/client/StreamPipesClientRuntimeConnectionResolver.java +++ b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/client/StreamPipesClientRuntimeConnectionResolver.java @@ -27,6 +27,7 @@ import org.apache.streampipes.commons.networking.Networking; import org.apache.streampipes.svcdiscovery.SpServiceDiscovery; import org.apache.streampipes.svcdiscovery.api.model.DefaultSpServiceGroups; import org.apache.streampipes.svcdiscovery.api.model.DefaultSpServiceTags; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,11 +84,11 @@ public class StreamPipesClientRuntimeConnectionResolver implements ClientConnect private List<String> findClientServices() { return SpServiceDiscovery - .getServiceDiscovery() - .getServiceEndpoints( - DefaultSpServiceGroups.CORE, - true, - Collections.singletonList(DefaultSpServiceTags.STREAMPIPES_CLIENT.asString()) - ); + .getServiceDiscovery() + .getServiceEndpoints( + DefaultSpServiceGroups.CORE, + true, + Collections.singletonList(DefaultSpServiceTags.STREAMPIPES_CLIENT.asString()) + ); } } diff --git a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/TokenAuthenticationFilter.java b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/TokenAuthenticationFilter.java index 3b50f1c87..a8bb0630c 100644 --- a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/TokenAuthenticationFilter.java +++ b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/TokenAuthenticationFilter.java @@ -19,13 +19,14 @@ package org.apache.streampipes.service.extensions.base.security; -import com.fasterxml.jackson.core.JsonProcessingException; -import io.jsonwebtoken.Claims; import org.apache.streampipes.commons.constants.HttpConstants; import org.apache.streampipes.model.UserInfo; import org.apache.streampipes.security.jwt.JwtTokenUtils; import org.apache.streampipes.security.jwt.JwtTokenValidator; import org.apache.streampipes.security.jwt.PublicKeyResolver; + +import com.fasterxml.jackson.core.JsonProcessingException; +import io.jsonwebtoken.Claims; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; @@ -36,6 +37,7 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import java.io.IOException; import java.util.HashSet; import java.util.List; diff --git a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/UnauthenticatedInterfaces.java b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/UnauthenticatedInterfaces.java index 86e443ae4..f6c8bb083 100644 --- a/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/UnauthenticatedInterfaces.java +++ b/streampipes-service-extensions-base/src/main/java/org/apache/streampipes/service/extensions/base/security/UnauthenticatedInterfaces.java @@ -27,12 +27,12 @@ public class UnauthenticatedInterfaces { public static Collection<String> get() { return Arrays.asList( - "/svchealth/*", - "/", - "/sec/**", - "/sepa/**", - "/stream/**", - "/api/v1/worker/**" + "/svchealth/*", + "/", + "/sec/**", + "/sepa/**", + "/stream/**", + "/api/v1/worker/**" ); } }
