Я пытаюсь реализовать веб-приложение, используя 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"]
}
Может кто-нибудь помочь мне понять, что я делаю неправильно.
Все еще не в состоянии понять.