Я бы хотел запретить людям доступ к моему приложению (внешний интерфейс Angular 7, серверная часть Spring Boot), когда они не вошли в систему с помощью Spring-Boot-Security
.Я аутентифицирую своего пользователя через ldap
и хотел бы установить роли на основе записей в базе данных, но давайте вернемся к этому шаг за шагом.Итак, теперь я заменил Spring-Boot-Security
-login по умолчанию (через сгенерированный пароль) на мою ldap
-конфигурацию (но все еще используя страницу входа по умолчанию).Для этого я получил следующий код:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/login")
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
.httpBasic();
http.formLogin().defaultSuccessUrl("/", true);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(activeDirectoryLdapAuthenticationProvider());
}
@Bean
public AuthenticationManager authenticationManager() {
return new ProviderManager(Arrays.asList(activeDirectoryLdapAuthenticationProvider()));
}
@Bean
public AuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(AD_DOMAIN, AD_URL);
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
return provider;
}
Теперь по умолчанию при включении артефакта spring-boot-starter-security
все перенаправляются на страницу /login
при попытке доступа к любой странице.К сожалению, поскольку я переписал этот конфиг своим собственным, это уже не так.Как я могу позволить Spring сделать это снова (также с веб-страницами, доступ к которым тоже был невозможен)?