@Override public Mono<UserDetails> updatePassword(UserDetails user, String newPassword) { return Mono.just(user) .map(u -> User.withUserDetails(u) .password(newPassword) .build() ) .doOnNext(u -> { String key = getKey(user.getUsername()); this.users.put(key, u); }); }
@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(); }
@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 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() ); } }
public static UserBuilder withUserDetails(UserDetails userDetails) { return withUsername(userDetails.getUsername()) .password(userDetails.getPassword()) .accountExpired(!userDetails.isAccountNonExpired()) .accountLocked(!userDetails.isAccountNonLocked()) .authorities(userDetails.getAuthorities()) .credentialsExpired(!userDetails.isCredentialsNonExpired()) .disabled(!userDetails.isEnabled()); }
@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 withUsernameWhenPasswordAndPasswordEncoderThenEncodes() { UserDetails withEncodedPassword = User.withUsername("user") .passwordEncoder(p -> p + "encoded") .password("password") .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 ReactiveUserDetailsService userDetailsService(PasswordEncoder encoder) { return new MapReactiveUserDetailsService(User.withUsername("user") .password(encoder.encode("password")) .roles("USER") .build() ); }
private void assertLoaded() throws Exception { Collection<UserDetails> users = factory.getObject(); UserDetails expectedUser = User.withUsername("user") .password("password") .authorities("ROLE_USER") .build(); assertThat(users).containsExactly(expectedUser); } }
@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 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"); }