Мое приложение структурировано с помощью Java и Spring Security.У меня есть два способа входа в систему, один из которых - вход в Windows (активная директория), другой - пароль, созданный администратором.Оба из них работают, когда я запускаю локально через IntelliJ, но когда я развертываю приложение на сервере, оно позволяет только тем пользователям, которые используют учетные данные для входа в Windows, войти в систему.обновляет страницу входа и удаляет введенные имя пользователя и пароль.Я не получаю никаких ошибок.Кроме того, когда пользователь admin создает пользовательский вход в систему, он сохраняется в таблице sql с хэшированным паролем.Таким образом, функция создания работает / пользователь существует, просто вход в систему не работает.Любая идея, что может быть причиной ... Не уверен, если я должен смотреть на код или соединение с сервером.Я использую Tomcat и IIS для размещения этого сайта.
Файл веб-конфигурации
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${ad.hg.url}")
private String AD_HG_URL;
@Value("${ad.hp.nt.url}")
private String AD_HP_NT_URL;
@Autowired
DBAuthorizationFetcher dbAuthorizationFetcher;
@Autowired
ManualUserDetailsService manualUserDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().ignoringAntMatchers("/specialSplit/**");
http.authorizeRequests()
.antMatchers("/css/**","/js/**","/images/**","/login","/accessDenied","/loginFailed","/changePassword","/resetPassword").permitAll()
.antMatchers("/newClient","/callLogs/**","/addClient","/saveClient","/delete/**","/save/**","/specialSplit/**").hasRole("OLIDB_ADMIN")
.antMatchers("/admin","/toggle/user/**").hasRole("USER_ADMIN")
.anyRequest().hasRole("OLIDB_USER").and()
.formLogin().loginPage("/login").failureHandler(new CustomAuthenticationFailureHandler()).successForwardUrl("/")
.and().exceptionHandling().accessDeniedPage("/accessDenied")
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/");
}
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
//authManagerBuilder.authenticationProvider(databaseAuthenticationProvider);
authManagerBuilder.authenticationProvider(activeDirectoryLdapAuthenticationProvider("HEFFGROUP.COM",AD_HP_NT_URL));
authManagerBuilder.authenticationProvider(activeDirectoryLdapAuthenticationProvider("HG",AD_HG_URL));
authManagerBuilder.authenticationProvider(manualAuthenticationProvider());
}
public AuthenticationProvider activeDirectoryLdapAuthenticationProvider(String domain,String url) {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(domain, url);
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
provider.setUserDetailsContextMapper(dbAuthorizationFetcher);
return provider;
}
public DaoAuthenticationProvider manualAuthenticationProvider() {
DaoAuthenticationProvider authProvider
= new DaoAuthenticationProvider();
authProvider.setUserDetailsService(manualUserDetailsService);
authProvider.setPasswordEncoder(new BCryptPasswordEncoder(11));
return authProvider;
}
}