In-memory user management should not ignore user roles configured via Spring (#794)
* Fix hawkBit UserDetailsService bean to honor the configured roles Signed-off-by: Stefan Behl <stefan.behl@bosch-si.com> * Fix Sonar issues Signed-off-by: Stefan Behl <stefan.behl@bosch-si.com>
This commit is contained in:
committed by
Kai Zimmermann
parent
59f674ca0e
commit
df23c4ef83
@@ -9,6 +9,7 @@
|
||||
package org.eclipse.hawkbit.autoconfigure.security;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.hawkbit.im.authentication.MultitenancyIndicator;
|
||||
import org.eclipse.hawkbit.im.authentication.PermissionUtils;
|
||||
@@ -24,6 +25,7 @@ import org.springframework.security.config.annotation.authentication.builders.Au
|
||||
import org.springframework.security.config.annotation.authentication.configuration.GlobalAuthenticationConfigurerAdapter;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.userdetails.User;
|
||||
import org.springframework.security.core.userdetails.User.UserBuilder;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||
@@ -57,8 +59,14 @@ public class InMemoryUserManagementAutoConfiguration extends GlobalAuthenticatio
|
||||
UserDetailsService userDetailsService() {
|
||||
final InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserPrincipalDetailsManager();
|
||||
inMemoryUserDetailsManager.setAuthenticationManager(null);
|
||||
inMemoryUserDetailsManager.createUser(new User(securityProperties.getUser().getName(),
|
||||
securityProperties.getUser().getPassword(), PermissionUtils.createAllAuthorityList()));
|
||||
final SecurityProperties.User user = securityProperties.getUser();
|
||||
final UserBuilder userBuilder = User.builder().username(user.getName()).password(user.getPassword())
|
||||
.authorities(PermissionUtils.createAllAuthorityList());
|
||||
final List<String> roles = user.getRoles();
|
||||
if (!roles.isEmpty()) {
|
||||
userBuilder.roles(roles.toArray(new String[roles.size()]));
|
||||
}
|
||||
inMemoryUserDetailsManager.createUser(userBuilder.build());
|
||||
return inMemoryUserDetailsManager;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user