Fix Sonar Findings (#2679)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-09-19 10:25:18 +03:00
committed by GitHub
parent 5fecfbffc9
commit e19b11290d
4 changed files with 28 additions and 30 deletions

View File

@@ -51,17 +51,10 @@ import org.springframework.util.CollectionUtils;
@Service
public class MgmtDistributionSetMapper {
private final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement;
private final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement;
private final SystemManagement systemManagement;
MgmtDistributionSetMapper(
final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement,
final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement,
final SystemManagement systemManagement) {
this.distributionSetTypeManagement = distributionSetTypeManagement;
MgmtDistributionSetMapper(final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement) {
this.softwareModuleManagement = softwareModuleManagement;
this.systemManagement = systemManagement;
}
public List<DistributionSetManagement.Create> fromRequest(

View File

@@ -303,9 +303,7 @@ public abstract class AbstractRepositoryManagementTest<T extends BaseEntity, C,
} else if (type == String.class) {
return (O) ("test-" + counter.incrementAndGet());
} else if (type == Set.class) {
final Set<?> set = new HashSet<>();
// set.add(forType(createType));
return (O) set;
return (O) new HashSet<>();
} else if (type.isEnum()) {
final O[] constants = type.getEnumConstants();
return constants[(int) (counter.incrementAndGet() % constants.length)];

View File

@@ -241,22 +241,24 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
testdataFactory.createDistributionSet("ds1"), testdataFactory.createTargets(1, "t1")));
assertThat(actionId1).isNotNull();
final ActionStatusCreateBuilder status = ActionStatusCreate.builder().actionId(actionId1).status(Status.WARNING);
for (int i = 0; i < maxStatusEntries; ++i) {
for (int i = 0; i < maxStatusEntries; i++) {
controllerManagement.addInformationalActionStatus(status.messages(List.of("Msg " + i)).occurredAt(System.currentTimeMillis()).build());
}
final ActionStatusCreate actionStatusCreate = status.build();
assertThatExceptionOfType(AssignmentQuotaExceededException.class)
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(status.build()));
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(actionStatusCreate));
// test for update status (and mixed case)
final Long actionId2 = getFirstAssignedActionId(assignDistributionSet(
testdataFactory.createDistributionSet("ds2"), testdataFactory.createTargets(1, "t2")));
assertThat(actionId2).isNotEqualTo(actionId1);
final ActionStatusCreateBuilder statusWarning = ActionStatusCreate.builder().actionId(actionId2).status(Status.WARNING);
for (int i = 0; i < maxStatusEntries; ++i) {
for (int i = 0; i < maxStatusEntries; i++) {
controllerManagement.addUpdateActionStatus(statusWarning.messages(List.of("Msg " + i)).occurredAt(System.currentTimeMillis()).build());
}
final ActionStatusCreate actionStatusCreateQE = statusWarning.build();
assertThatExceptionOfType(AssignmentQuotaExceededException.class)
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(statusWarning.build()));
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(actionStatusCreateQE));
}
/**
@@ -334,12 +336,14 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
assertThat(controllerManagement.findActionWithDetails(NOT_EXIST_IDL)).isNotPresent();
assertThat(controllerManagement.findByControllerId(NOT_EXIST_ID)).isNotPresent();
assertThat(controllerManagement.find(NOT_EXIST_IDL)).isNotPresent();
final String controllerId = target.getControllerId();
final Long moduleId = module.getId();
assertThatExceptionOfType(EntityNotFoundException.class)
.isThrownBy(() -> controllerManagement.getActionForDownloadByTargetAndSoftwareModule(target.getControllerId(), module.getId()));
.isThrownBy(() -> controllerManagement.getActionForDownloadByTargetAndSoftwareModule(controllerId, moduleId));
assertThat(controllerManagement.findActiveActionWithHighestWeight(NOT_EXIST_ID)).isNotPresent();
assertThat(controllerManagement.hasTargetArtifactAssigned(target.getControllerId(), "XXX")).isFalse();
assertThat(controllerManagement.hasTargetArtifactAssigned(controllerId, "XXX")).isFalse();
assertThat(controllerManagement.hasTargetArtifactAssigned(target.getId(), "XXX")).isFalse();
}

View File

@@ -9,19 +9,22 @@
*/
package org.eclipse.hawkbit.ui.simple.security;
import com.vaadin.flow.spring.security.VaadinWebSecurity;
import com.vaadin.flow.spring.security.VaadinAwareSecurityContextHolderStrategyConfiguration;
import com.vaadin.flow.spring.security.VaadinSecurityConfigurer;
import org.eclipse.hawkbit.ui.simple.view.LoginView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.security.config.Customizer;
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.configurers.oauth2.client.OAuth2LoginConfigurer;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import java.net.URLEncoder;
@@ -30,7 +33,8 @@ import java.nio.charset.StandardCharsets;
@EnableWebSecurity
@Configuration
@EnableConfigurationProperties(OidcClientProperties.class)
public class SecurityConfiguration extends VaadinWebSecurity {
@Import(VaadinAwareSecurityContextHolderStrategyConfiguration.class)
public class SecurityConfiguration {
private Customizer<OAuth2LoginConfigurer<HttpSecurity>> oAuth2LoginConfigurerCustomizer;
@@ -47,26 +51,25 @@ public class SecurityConfiguration extends VaadinWebSecurity {
@Bean
public AuthenticationFailureHandler customFailureHandler() {
return (request, response, exception) -> {
// Redirect back to login with your message
return (request, response, exception) ->
response.sendRedirect("/login?error=" + URLEncoder.encode(exception.getMessage(), StandardCharsets.UTF_8));
};
}
@Override
protected void configure(final HttpSecurity http) throws Exception {
@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(authorize -> authorize.requestMatchers("/images/*.png").permitAll());
super.configure(http);
if (oAuth2LoginConfigurerCustomizer != null) {
http.oauth2Login(oAuth2LoginConfigurerCustomizer);
} else {
http.formLogin(form -> form
.loginPage("/login")
.failureHandler(customFailureHandler())
);
setLoginView(http, LoginView.class);
}
.failureHandler(customFailureHandler()));
}
return http.with(VaadinSecurityConfigurer.vaadin(), configurer -> {
if (oAuth2LoginConfigurerCustomizer == null) {
configurer.loginView(LoginView.class);
}
}).build();
}
}