package com.stktrk.app; import jakarta.annotation.Nonnull; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.SecurityFilterChain; /** * Code was copied from here */ @Configuration @EnableWebSecurity public class BasicConfiguration { @Bean @Nonnull public InMemoryUserDetailsManager userDetailsService(@Nonnull PasswordEncoder passwordEncoder) { UserDetails user = User.withUsername("Rasmus") .password(passwordEncoder.encode("password")) .roles("USER") .build(); UserDetails admin = User.withUsername("Christian") .password(passwordEncoder.encode("password")) .roles("USER", "ADMIN") .build(); return new InMemoryUserDetailsManager(user, admin); } @Bean @Nonnull public SecurityFilterChain filterChain(@Nonnull HttpSecurity http) throws Exception { return http.authorizeHttpRequests(request -> request.anyRequest() .authenticated()) .httpBasic(Customizer.withDefaults()) .build(); } @Bean @Nonnull public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } }