diff --git a/src/main/java/de/rwth/idsg/steve/service/WebUserService.java b/src/main/java/de/rwth/idsg/steve/service/WebUserService.java index 6fe749368..35bec29f4 100644 --- a/src/main/java/de/rwth/idsg/steve/service/WebUserService.java +++ b/src/main/java/de/rwth/idsg/steve/service/WebUserService.java @@ -26,12 +26,14 @@ import de.rwth.idsg.steve.repository.WebUserRepository; import jooq.steve.db.tables.records.WebUserRecord; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jooq.JSON; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolderStrategy; import org.springframework.security.core.userdetails.User; @@ -80,14 +82,20 @@ public void afterStart(ContextRefreshedEvent event) { return; } - var user = User - .withUsername(SteveConfiguration.CONFIG.getAuth().getUserName()) - .password(SteveConfiguration.CONFIG.getAuth().getEncodedPassword()) - .disabled(false) - .authorities("ADMIN") - .build(); + var headerVal = SteveConfiguration.CONFIG.getWebApi().getHeaderValue(); + + var encodedApiPassword = StringUtils.isEmpty(headerVal) + ? null + : SteveConfiguration.CONFIG.getAuth().getPasswordEncoder().encode(headerVal); + + var user = new WebUserRecord() + .setUsername(SteveConfiguration.CONFIG.getAuth().getUserName()) + .setPassword(SteveConfiguration.CONFIG.getAuth().getEncodedPassword()) + .setApiPassword(encodedApiPassword) + .setEnabled(true) + .setAuthorities(toJson(AuthorityUtils.createAuthorityList("ADMIN"))); - this.createUser(user); + webUserRepository.createUser(user); } @Override