Fix Sonar Findings (#2679)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -51,17 +51,10 @@ import org.springframework.util.CollectionUtils;
|
|||||||
@Service
|
@Service
|
||||||
public class MgmtDistributionSetMapper {
|
public class MgmtDistributionSetMapper {
|
||||||
|
|
||||||
private final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement;
|
|
||||||
private final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement;
|
private final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement;
|
||||||
private final SystemManagement systemManagement;
|
|
||||||
|
|
||||||
MgmtDistributionSetMapper(
|
MgmtDistributionSetMapper(final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement) {
|
||||||
final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement,
|
|
||||||
final SoftwareModuleManagement<? extends SoftwareModule> softwareModuleManagement,
|
|
||||||
final SystemManagement systemManagement) {
|
|
||||||
this.distributionSetTypeManagement = distributionSetTypeManagement;
|
|
||||||
this.softwareModuleManagement = softwareModuleManagement;
|
this.softwareModuleManagement = softwareModuleManagement;
|
||||||
this.systemManagement = systemManagement;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<DistributionSetManagement.Create> fromRequest(
|
public List<DistributionSetManagement.Create> fromRequest(
|
||||||
|
|||||||
@@ -303,9 +303,7 @@ public abstract class AbstractRepositoryManagementTest<T extends BaseEntity, C,
|
|||||||
} else if (type == String.class) {
|
} else if (type == String.class) {
|
||||||
return (O) ("test-" + counter.incrementAndGet());
|
return (O) ("test-" + counter.incrementAndGet());
|
||||||
} else if (type == Set.class) {
|
} else if (type == Set.class) {
|
||||||
final Set<?> set = new HashSet<>();
|
return (O) new HashSet<>();
|
||||||
// set.add(forType(createType));
|
|
||||||
return (O) set;
|
|
||||||
} else if (type.isEnum()) {
|
} else if (type.isEnum()) {
|
||||||
final O[] constants = type.getEnumConstants();
|
final O[] constants = type.getEnumConstants();
|
||||||
return constants[(int) (counter.incrementAndGet() % constants.length)];
|
return constants[(int) (counter.incrementAndGet() % constants.length)];
|
||||||
|
|||||||
@@ -241,22 +241,24 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
|
|||||||
testdataFactory.createDistributionSet("ds1"), testdataFactory.createTargets(1, "t1")));
|
testdataFactory.createDistributionSet("ds1"), testdataFactory.createTargets(1, "t1")));
|
||||||
assertThat(actionId1).isNotNull();
|
assertThat(actionId1).isNotNull();
|
||||||
final ActionStatusCreateBuilder status = ActionStatusCreate.builder().actionId(actionId1).status(Status.WARNING);
|
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());
|
controllerManagement.addInformationalActionStatus(status.messages(List.of("Msg " + i)).occurredAt(System.currentTimeMillis()).build());
|
||||||
}
|
}
|
||||||
|
final ActionStatusCreate actionStatusCreate = status.build();
|
||||||
assertThatExceptionOfType(AssignmentQuotaExceededException.class)
|
assertThatExceptionOfType(AssignmentQuotaExceededException.class)
|
||||||
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(status.build()));
|
.isThrownBy(() -> controllerManagement.addInformationalActionStatus(actionStatusCreate));
|
||||||
|
|
||||||
// test for update status (and mixed case)
|
// test for update status (and mixed case)
|
||||||
final Long actionId2 = getFirstAssignedActionId(assignDistributionSet(
|
final Long actionId2 = getFirstAssignedActionId(assignDistributionSet(
|
||||||
testdataFactory.createDistributionSet("ds2"), testdataFactory.createTargets(1, "t2")));
|
testdataFactory.createDistributionSet("ds2"), testdataFactory.createTargets(1, "t2")));
|
||||||
assertThat(actionId2).isNotEqualTo(actionId1);
|
assertThat(actionId2).isNotEqualTo(actionId1);
|
||||||
final ActionStatusCreateBuilder statusWarning = ActionStatusCreate.builder().actionId(actionId2).status(Status.WARNING);
|
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());
|
controllerManagement.addUpdateActionStatus(statusWarning.messages(List.of("Msg " + i)).occurredAt(System.currentTimeMillis()).build());
|
||||||
}
|
}
|
||||||
|
final ActionStatusCreate actionStatusCreateQE = statusWarning.build();
|
||||||
assertThatExceptionOfType(AssignmentQuotaExceededException.class)
|
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.findActionWithDetails(NOT_EXIST_IDL)).isNotPresent();
|
||||||
assertThat(controllerManagement.findByControllerId(NOT_EXIST_ID)).isNotPresent();
|
assertThat(controllerManagement.findByControllerId(NOT_EXIST_ID)).isNotPresent();
|
||||||
assertThat(controllerManagement.find(NOT_EXIST_IDL)).isNotPresent();
|
assertThat(controllerManagement.find(NOT_EXIST_IDL)).isNotPresent();
|
||||||
|
final String controllerId = target.getControllerId();
|
||||||
|
final Long moduleId = module.getId();
|
||||||
assertThatExceptionOfType(EntityNotFoundException.class)
|
assertThatExceptionOfType(EntityNotFoundException.class)
|
||||||
.isThrownBy(() -> controllerManagement.getActionForDownloadByTargetAndSoftwareModule(target.getControllerId(), module.getId()));
|
.isThrownBy(() -> controllerManagement.getActionForDownloadByTargetAndSoftwareModule(controllerId, moduleId));
|
||||||
|
|
||||||
assertThat(controllerManagement.findActiveActionWithHighestWeight(NOT_EXIST_ID)).isNotPresent();
|
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();
|
assertThat(controllerManagement.hasTargetArtifactAssigned(target.getId(), "XXX")).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,19 +9,22 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.ui.simple.security;
|
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.eclipse.hawkbit.ui.simple.view.LoginView;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.security.config.Customizer;
|
import org.springframework.security.config.Customizer;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
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.EnableWebSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configurers.oauth2.client.OAuth2LoginConfigurer;
|
import org.springframework.security.config.annotation.web.configurers.oauth2.client.OAuth2LoginConfigurer;
|
||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||||
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
@@ -30,7 +33,8 @@ import java.nio.charset.StandardCharsets;
|
|||||||
@EnableWebSecurity
|
@EnableWebSecurity
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableConfigurationProperties(OidcClientProperties.class)
|
@EnableConfigurationProperties(OidcClientProperties.class)
|
||||||
public class SecurityConfiguration extends VaadinWebSecurity {
|
@Import(VaadinAwareSecurityContextHolderStrategyConfiguration.class)
|
||||||
|
public class SecurityConfiguration {
|
||||||
|
|
||||||
private Customizer<OAuth2LoginConfigurer<HttpSecurity>> oAuth2LoginConfigurerCustomizer;
|
private Customizer<OAuth2LoginConfigurer<HttpSecurity>> oAuth2LoginConfigurerCustomizer;
|
||||||
|
|
||||||
@@ -47,26 +51,25 @@ public class SecurityConfiguration extends VaadinWebSecurity {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public AuthenticationFailureHandler customFailureHandler() {
|
public AuthenticationFailureHandler customFailureHandler() {
|
||||||
return (request, response, exception) -> {
|
// Redirect back to login with your message
|
||||||
// Redirect back to login with your message
|
return (request, response, exception) ->
|
||||||
response.sendRedirect("/login?error=" + URLEncoder.encode(exception.getMessage(), StandardCharsets.UTF_8));
|
response.sendRedirect("/login?error=" + URLEncoder.encode(exception.getMessage(), StandardCharsets.UTF_8));
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Bean
|
||||||
protected void configure(final HttpSecurity http) throws Exception {
|
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||||
http.authorizeHttpRequests(authorize -> authorize.requestMatchers("/images/*.png").permitAll());
|
http.authorizeHttpRequests(authorize -> authorize.requestMatchers("/images/*.png").permitAll());
|
||||||
|
|
||||||
super.configure(http);
|
|
||||||
|
|
||||||
if (oAuth2LoginConfigurerCustomizer != null) {
|
if (oAuth2LoginConfigurerCustomizer != null) {
|
||||||
http.oauth2Login(oAuth2LoginConfigurerCustomizer);
|
http.oauth2Login(oAuth2LoginConfigurerCustomizer);
|
||||||
} else {
|
} else {
|
||||||
http.formLogin(form -> form
|
http.formLogin(form -> form
|
||||||
.loginPage("/login")
|
.loginPage("/login")
|
||||||
.failureHandler(customFailureHandler())
|
.failureHandler(customFailureHandler()));
|
||||||
);
|
|
||||||
setLoginView(http, LoginView.class);
|
|
||||||
}
|
}
|
||||||
|
return http.with(VaadinSecurityConfigurer.vaadin(), configurer -> {
|
||||||
|
if (oAuth2LoginConfigurerCustomizer == null) {
|
||||||
|
configurer.loginView(LoginView.class);
|
||||||
|
}
|
||||||
|
}).build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user