Skip to content

Commit

Permalink
[backend] fix all files
Browse files Browse the repository at this point in the history
  • Loading branch information
isselparra committed Oct 16, 2024
1 parent f3cee58 commit 4a360d5
Show file tree
Hide file tree
Showing 611 changed files with 25,811 additions and 22,613 deletions.
6 changes: 3 additions & 3 deletions openbas-api/src/main/java/io/openbas/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
@SpringBootApplication
public class App {

public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Custom annotation used for logging execution time of any method
*/
/** Custom annotation used for logging execution time of any method */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LogExecutionTime {

}
public @interface LogExecutionTime {}
14 changes: 9 additions & 5 deletions openbas-api/src/main/java/io/openbas/aop/LoggingAspect.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public class LoggingAspect {
private static final long EXECUTION_TIME_THRESHOLD = 500;

/**
* This method uses Around advice which ensures that an advice can run before and after the method execution, to and
* log the execution time of the method This advice will be applied to all the method which are annotate with the
* annotation @LogExecutionTime
* This method uses Around advice which ensures that an advice can run before and after the method
* execution, to and log the execution time of the method This advice will be applied to all the
* method which are annotate with the annotation @LogExecutionTime
*/
@Around("@annotation(io.openbas.aop.LogExecutionTime)")
public Object methodTimeLogger(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
Expand All @@ -44,8 +44,12 @@ public Object methodTimeLogger(ProceedingJoinPoint proceedingJoinPoint) throws T
}

if (executionTime > EXECUTION_TIME_THRESHOLD) {
logger.warn("Execution of {}.{} took {} ms, which exceeds the threshold of {} ms",
className, methodName, executionTime, EXECUTION_TIME_THRESHOLD);
logger.warn(
"Execution of {}.{} took {} ms, which exceeds the threshold of {} ms",
className,
methodName,
executionTime,
EXECUTION_TIME_THRESHOLD);
}

return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
import io.openbas.collectors.expectations_expiration_manager.service.ExpectationsExpirationManagerService;
import io.openbas.integrations.CollectorService;
import jakarta.annotation.PostConstruct;
import java.time.Duration;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Service;

import java.time.Duration;

@RequiredArgsConstructor
@Service
public class ExpectationsExpirationManagerCollector {
Expand All @@ -22,9 +21,10 @@ public class ExpectationsExpirationManagerCollector {
@PostConstruct
public void init() {
if (this.config.isEnable()) {
ExpectationsExpirationManagerJob job = new ExpectationsExpirationManagerJob(this.collectorService, this.config, this.fakeDetectorService);
ExpectationsExpirationManagerJob job =
new ExpectationsExpirationManagerJob(
this.collectorService, this.config, this.fakeDetectorService);
this.taskScheduler.scheduleAtFixedRate(job, Duration.ofSeconds(this.config.getInterval()));
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import io.openbas.collectors.expectations_expiration_manager.config.ExpectationsExpirationManagerConfig;
import io.openbas.collectors.expectations_expiration_manager.service.ExpectationsExpirationManagerService;
import io.openbas.integrations.CollectorService;
import java.util.logging.Level;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.logging.Level;

@Service
@Log
public class ExpectationsExpirationManagerJob implements Runnable {
Expand All @@ -17,10 +16,17 @@ public class ExpectationsExpirationManagerJob implements Runnable {
private final ExpectationsExpirationManagerService fakeDetectorService;

@Autowired
public ExpectationsExpirationManagerJob(CollectorService collectorService, ExpectationsExpirationManagerConfig config, ExpectationsExpirationManagerService fakeDetectorService) {
public ExpectationsExpirationManagerJob(
CollectorService collectorService,
ExpectationsExpirationManagerConfig config,
ExpectationsExpirationManagerService fakeDetectorService) {
this.fakeDetectorService = fakeDetectorService;
try {
collectorService.register(config.getId(), FAKE_DETECTOR_COLLECTOR_TYPE, FAKE_DETECTOR_COLLECTOR_NAME, getClass().getResourceAsStream("/img/icon-fake-detector.png"));
collectorService.register(
config.getId(),
FAKE_DETECTOR_COLLECTOR_TYPE,
FAKE_DETECTOR_COLLECTOR_NAME,
getClass().getResourceAsStream("/img/icon-fake-detector.png"));
} catch (Exception e) {
log.log(Level.SEVERE, "Error creating expectations expiration manager ");
}
Expand All @@ -35,5 +41,4 @@ public void run() {
log.log(Level.SEVERE, "Error running expectations expiration manager service", e);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,3 @@ public int getExpirationTimeInMinute() {
return this.expirationTime / 60;
}
}

Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
package io.openbas.collectors.expectations_expiration_manager.service;

import static io.openbas.collectors.expectations_expiration_manager.config.ExpectationsExpirationManagerConfig.PRODUCT_NAME;
import static io.openbas.collectors.expectations_expiration_manager.utils.ExpectationUtils.computeFailedMessage;
import static io.openbas.collectors.expectations_expiration_manager.utils.ExpectationUtils.isExpired;

import io.openbas.collectors.expectations_expiration_manager.config.ExpectationsExpirationManagerConfig;
import io.openbas.database.model.InjectExpectation;
import io.openbas.inject_expectation.InjectExpectationService;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import static io.openbas.collectors.expectations_expiration_manager.config.ExpectationsExpirationManagerConfig.PRODUCT_NAME;
import static io.openbas.collectors.expectations_expiration_manager.utils.ExpectationUtils.computeFailedMessage;
import static io.openbas.collectors.expectations_expiration_manager.utils.ExpectationUtils.isExpired;

@RequiredArgsConstructor
@Service
@Log
Expand All @@ -23,7 +22,6 @@ public class ExpectationsExpirationManagerService {
private final InjectExpectationService injectExpectationService;
private final ExpectationsExpirationManagerConfig config;


@Transactional(rollbackFor = Exception.class)
public void computeExpectations() {
List<InjectExpectation> expectations = this.injectExpectationService.expectationsNotFill();
Expand All @@ -38,57 +36,49 @@ public void computeExpectations() {

private void computeExpectations(@NotNull final List<InjectExpectation> expectations) {
List<InjectExpectation> expectationAssets = expectations.stream().toList();
expectationAssets.forEach((expectation) -> {
if (isExpired(expectation)) {
String result = computeFailedMessage(expectation.getType());
this.injectExpectationService.computeExpectation(
expectation,
this.config.getId(),
"collector",
PRODUCT_NAME,
result,
false
);
}

});
expectationAssets.forEach(
(expectation) -> {
if (isExpired(expectation)) {
String result = computeFailedMessage(expectation.getType());
this.injectExpectationService.computeExpectation(
expectation, this.config.getId(), "collector", PRODUCT_NAME, result, false);
}
});
}

private void computeExpectationsForAssets(@NotNull final List<InjectExpectation> expectations) {
List<InjectExpectation> expectationAssets = expectations.stream().filter(e -> e.getAsset() != null).toList();
expectationAssets.forEach((expectation) -> {
if (isExpired(expectation)) {
String result = computeFailedMessage(expectation.getType());
this.injectExpectationService.computeExpectation(
expectation,
this.config.getId(),
"collector",
PRODUCT_NAME,
result,
false
);
}

});
List<InjectExpectation> expectationAssets =
expectations.stream().filter(e -> e.getAsset() != null).toList();
expectationAssets.forEach(
(expectation) -> {
if (isExpired(expectation)) {
String result = computeFailedMessage(expectation.getType());
this.injectExpectationService.computeExpectation(
expectation, this.config.getId(), "collector", PRODUCT_NAME, result, false);
}
});
}

private void computeExpectationsForAssetGroups(@NotNull final List<InjectExpectation> expectations) {
List<InjectExpectation> expectationAssetGroups = expectations.stream().filter(e -> e.getAssetGroup() != null)
.toList();
expectationAssetGroups.forEach((expectationAssetGroup -> {
List<InjectExpectation> expectationAssets = this.injectExpectationService.expectationsForAssets(
expectationAssetGroup.getInject(), expectationAssetGroup.getAssetGroup(), expectationAssetGroup.getType()
);
// Every expectation assets are filled
if (expectationAssets.stream().noneMatch(e -> e.getResults().isEmpty())) {
this.injectExpectationService.computeExpectationGroup(
expectationAssetGroup,
expectationAssets,
this.config.getId(),
"collector",
PRODUCT_NAME
);
}
}));
private void computeExpectationsForAssetGroups(
@NotNull final List<InjectExpectation> expectations) {
List<InjectExpectation> expectationAssetGroups =
expectations.stream().filter(e -> e.getAssetGroup() != null).toList();
expectationAssetGroups.forEach(
(expectationAssetGroup -> {
List<InjectExpectation> expectationAssets =
this.injectExpectationService.expectationsForAssets(
expectationAssetGroup.getInject(),
expectationAssetGroup.getAssetGroup(),
expectationAssetGroup.getType());
// Every expectation assets are filled
if (expectationAssets.stream().noneMatch(e -> e.getResults().isEmpty())) {
this.injectExpectationService.computeExpectationGroup(
expectationAssetGroup,
expectationAssets,
this.config.getId(),
"collector",
PRODUCT_NAME);
}
}));
}
}
Original file line number Diff line number Diff line change
@@ -1,32 +1,27 @@
package io.openbas.collectors.expectations_expiration_manager.utils;

import static io.openbas.database.model.InjectExpectation.EXPECTATION_TYPE.DETECTION;
import static io.openbas.database.model.InjectExpectation.EXPECTATION_TYPE.PREVENTION;

import io.openbas.database.model.InjectExpectation;
import io.openbas.database.model.InjectExpectation.EXPECTATION_TYPE;
import jakarta.validation.constraints.NotNull;

import java.time.Instant;
import java.time.temporal.ChronoUnit;

import static io.openbas.database.model.InjectExpectation.EXPECTATION_TYPE.DETECTION;
import static io.openbas.database.model.InjectExpectation.EXPECTATION_TYPE.PREVENTION;

public class ExpectationUtils {

private ExpectationUtils() {

}
private ExpectationUtils() {}

public static boolean isExpired(@NotNull final InjectExpectation expectation) {
Instant expirationTime = Instant.now().minus(expectation.getExpirationTime() / 60, ChronoUnit.MINUTES);
Instant expirationTime =
Instant.now().minus(expectation.getExpirationTime() / 60, ChronoUnit.MINUTES);
return expectation.getCreatedAt().isBefore(expirationTime);
}

public static String computeFailedMessage(@NotNull final EXPECTATION_TYPE expectationType) {
return DETECTION.equals(expectationType)
? "Not Detected"
: PREVENTION.equals(expectationType)
? "Not Prevented"
: "FAILED";
: PREVENTION.equals(expectationType) ? "Not Prevented" : "FAILED";
}

}
32 changes: 18 additions & 14 deletions openbas-api/src/main/java/io/openbas/config/AppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@
public class AppConfig {

// Validations
public final static String EMPTY_MESSAGE = "This list cannot be empty.";
public final static String MANDATORY_MESSAGE = "This value should not be blank.";
public final static String NOW_FUTURE_MESSAGE = "This date must be now or in the future.";
public final static String EMAIL_FORMAT = "This field must be a valid email.";
public final static String PHONE_FORMAT = "This field must start with '+' character and country identifier.";
public static final String EMPTY_MESSAGE = "This list cannot be empty.";
public static final String MANDATORY_MESSAGE = "This value should not be blank.";
public static final String NOW_FUTURE_MESSAGE = "This date must be now or in the future.";
public static final String EMAIL_FORMAT = "This field must be a valid email.";
public static final String PHONE_FORMAT =
"This field must start with '+' character and country identifier.";

@Resource
private OpenBASConfig openBASConfig;
@Resource private OpenBASConfig openBASConfig;

@Bean
ObjectMapper openBASJsonMapper() {
Expand All @@ -37,12 +37,16 @@ ObjectMapper openBASJsonMapper() {
@Bean
public OpenAPI openBASOpenAPI() {
return new OpenAPI()
.info(new Info().title("OpenBAS API")
.description("Software under open source licence designed to plan and conduct exercises")
.version(this.openBASConfig.getVersion())
.license(new License().name("Apache 2.0").url("https://filigran.io//")))
.externalDocs(new ExternalDocumentation()
.description("OpenBAS documentation")
.url("https://docs.openbas.io/"));
.info(
new Info()
.title("OpenBAS API")
.description(
"Software under open source licence designed to plan and conduct exercises")
.version(this.openBASConfig.getVersion())
.license(new License().name("Apache 2.0").url("https://filigran.io//")))
.externalDocs(
new ExternalDocumentation()
.description("OpenBAS documentation")
.url("https://docs.openbas.io/"));
}
}
Loading

0 comments on commit 4a360d5

Please sign in to comment.