Spring Security 5.1.5 с отключенным пользователем WebFlux не работает - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь реализовать веб-приложение, используя Spring WebFlux Framework и MongoDB.Все работает, как и ожидалось, но даже если для свойства enabled установлено значение false в базе данных, оно все еще позволяет мне успешно войти в систему.Что не должно быть так.Моя настройка безопасности приведена ниже -

@Configuration
@EnableWebFluxSecurity
@EnableReactiveMethodSecurity
public class WebfluxSecurityConfig {

    @Autowired
    private Constants constants;
    @Autowired
    private UserRepository userRepo;

    @Bean
    public ReactiveUserDetailsService userDetailsService(UserRepository users) {
         return (username) -> users.findByUsername(username)
                    .map(u -> new UserAuth(u.getUserId()
                            , u.getUsername()
                            , u.getPassword()
                            , u.isEnabled()
                            , !u.isAccountExpired()
                            , !u.isCredentialsExpired()
                            , !u.isAccountLocked()
                            , UserAuth.getGrantedAuthorities(u.getRoles().toArray(new String[0]))
                            , StringUtils.isEmpty(u.getAuthSalt()) ? u.getUsername() : u.getAuthSalt()
                        )
                    );
    }

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain3(ServerHttpSecurity http) {
         http
          .authorizeExchange()
              .pathMatchers("/web/**").authenticated()
              .pathMatchers("/**").permitAll()
          .and().formLogin()
                .loginPage("/login")
          .and().logout()
                .logoutUrl("/logout");

         return http.build();
    }
}

Ввод пользователя в mongodb - -

{
    "_id": "5d149e3b3c1206008cf56af9",
    "username": "admin",
    "password": "{noop}admin",
    "firstName": "Admin",
    "lastName": "1",
    "email": "admin@eightfolds.in",
    "enabled": false,
    "accountLocked": true,
    "roles": ["ADMIN"]
}

Может кто-нибудь помочь мне понять, что я делаю неправильно.

Все еще не в состоянии понять.

1 Ответ

1 голос
/ 17 июля 2019

Спасибо, что сообщили об этом.
Ваша конфигурация не имеет ничего плохого в этом. Проверка того, отключена ли учетная запись пользователя, еще не является частью WebFlux.
Я создал выпуск в репозитории GitHub с пружинной безопасностью, чтобы добавить эту функцию.

...