@Test public void authenticateWhenSuccessThenSuccess() { UserDetails user = PasswordEncodedUser.withUsername(this.username) .password(this.password) .roles("USER") .build(); when(repository.findByUsername(user.getUsername())).thenReturn(Mono.just(user)); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); Authentication authentication = manager.authenticate(token).block(); assertThat(authentication).isEqualTo(authentication); }
@Test public void authenticateWhenPasswordNotEqualThenBadCredentials() { UserDetails user = PasswordEncodedUser.withUsername(this.username) .password(this.password) .roles("USER") .build(); when(repository.findByUsername(user.getUsername())).thenReturn(Mono.just(user)); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, this.password + "INVALID"); Mono<Authentication> authentication = manager.authenticate(token); StepVerifier .create(authentication) .expectError(BadCredentialsException.class) .verify(); }
@Test public void withUsernameWhenPasswordAndPasswordEncoderThenEncodes() { UserDetails withEncodedPassword = User.withUsername("user") .passwordEncoder(p -> p + "encoded") .password("password") .roles("USER") .build(); assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded"); }
@Bean @Override public UserDetailsService userDetailsService() { UserDetails user = User.withDefaultPasswordEncoder() .username("user") .password("user") .roles("USER") .build(); UserDetails admin = User.withDefaultPasswordEncoder() .username("admin") .password("admin") .roles("ADMIN") .build(); return new InMemoryUserDetailsManager(user, admin); } }
@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { return this.accountRepository.findByUsername(username) .map(account -> User.withUsername(account.getUsername()) .password(account.getPassword()).roles("USER") .build()) .orElseThrow(() -> new UsernameNotFoundException("couldn't find " + username + "!")); } }
@Bean public UserDetails userDetails() { return User.withUsername("guest") .passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()::encode) .password("guest") .roles("ADMIN") .build(); }
@Bean public MapReactiveUserDetailsService reactiveUserDetailsService() { UserDetails user = User.withUsername("user").password("{noop}password").roles("USER").build(); return new MapReactiveUserDetailsService(user); }
@Override @Bean public InMemoryUserDetailsManager userDetailsService() { return new InMemoryUserDetailsManager(User.withUsername("user") .password("{noop}password").roles("USER").build()); }
@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); UserDetails user = User.withUsername("user") .passwordEncoder(encoder::encode) .password("password") .roles("USER") .build(); InMemoryUserDetailsManager uds = new InMemoryUserDetailsManager(user); auth .userDetailsService(uds) .passwordEncoder(encoder); }
/** * This section defines the user accounts which can be used for authentication as well as the roles each user has. */ @Bean InMemoryUserDetailsManager userDetailsManager() { UserBuilder builder = User.withDefaultPasswordEncoder(); UserDetails greg = builder.username("greg").password("turnquist").roles("USER").build(); UserDetails ollie = builder.username("ollie").password("gierke").roles("USER", "ADMIN").build(); return new InMemoryUserDetailsManager(greg, ollie); }
@Bean public ReactiveUserDetailsService userDetailsService(PasswordEncoder encoder) { return new MapReactiveUserDetailsService(User.withUsername("user") .password(encoder.encode("password")) .roles("USER") .build() ); }
@Test public void withUsernameWhenPasswordAndPasswordEncoderTwiceThenEncodesOnce() { Function<String, String> encoder = p -> p + "encoded"; UserDetails withEncodedPassword = User.withUsername("user") .passwordEncoder(encoder) .password("password") .passwordEncoder(encoder) .roles("USER") .build(); assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded"); } }
@Test public void withUsernameWhenPasswordEncoderAndPasswordThenEncodes() { UserDetails withEncodedPassword = User.withUsername("user") .password("password") .passwordEncoder(p -> p + "encoded") .roles("USER") .build(); assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded"); }
@Bean public MapReactiveUserDetailsService userDetailsService() { return new MapReactiveUserDetailsService(User.withUsername("user") .password("{noop}password") .roles("USER") .build() ); } }
@Bean public InMemoryUserDetailsManager userDetailsManager() { return new InMemoryUserDetailsManager(User.withDefaultPasswordEncoder() .username("user") .password("password") .roles("USER") .build() ); } }
@Bean public InMemoryUserDetailsManager userDetailsManager() { return new InMemoryUserDetailsManager(User.withDefaultPasswordEncoder() .username("user") .password("password") .roles("USER") .build() ); } }
@Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( org.springframework.security.core.userdetails.User.withDefaultPasswordEncoder() .username("basic-user") .password("basic-password") .roles("USER") .build()); } }
@Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( User.withDefaultPasswordEncoder() .username("user") .password("password") .roles("USER") .build() ); } }
@Bean public UserDetailsService userDetailsService() { return new InMemoryUserDetailsManager( org.springframework.security.core.userdetails.User.withDefaultPasswordEncoder() .username("basic-user") .password("basic-password") .roles("USER") .build()); } }
@Test public void withUserWhenDetailsPasswordEncoderThenEncodes() { UserDetails userDetails = User.withUsername("user").password("password").roles("USER").build(); UserDetails withEncodedPassword = User.withUserDetails(userDetails) .passwordEncoder(p -> p + "encoded") .build(); assertThat(withEncodedPassword.getPassword()).isEqualTo("passwordencoded"); }