Мое приложение heroku запрашивает пароль, который я не вводил - PullRequest
3 голосов
/ 28 мая 2020

Я новичок в процессе отправки приложения в производство и использую бесплатный план Heroku для тестирования. Сегодня я пошел проверить свое приложение, и API, который я создал с помощью Spring boot, не работает и запрашивает вход в систему, чего я не делал. Адрес моего приложения https://erik-financial-api.herokuapp.com, и когда вы go там, он перенаправляет вас на адрес https://erik-financial-api.herokuapp.com/login со следующим:

enter image description here

Я не создавал эту страницу, и ни один из паролей (из моего приложения или из моей учетной записи Heroku) не работает на ней. Предполагалось, что это будет просто REST API для другого интерфейсного приложения. Кто-нибудь знает, почему это происходит?

Код этого проекта можно найти на моем GitHub на https://github.com/esscheffer/financial-api

Изменить: это похоже на пружину по умолчанию страница входа в систему безопасности. Я искал решения, но пока ни одно из них не помогло. Что я пробовал:

Добавить

override fun configure(security: HttpSecurity) {
    security.httpBasic().disable()
            .formLogin().disable()
}

в мой WebSecurityConfigurerAdapter класс.

Добавить http.httpBasic().disable().formLogin().disable() в configure моего ResourceServerConfigurerAdapter класса.

Добавить (exclude = [SecurityAutoConfiguration::class]) к @SpringBootApplication санации в моем классе приложения.

Первые 2 попытки не удалили страницу входа, а последняя сломала приложение, вернув 404 для всех страниц. Обратите внимание, что это происходит только тогда, когда я развертываю свое приложение на Heroku. При локальном запуске у меня нет этой страницы входа или каких-либо других проблем.

Ответы [ 2 ]

0 голосов
/ 14 июня 2020

Добавьте новый класс конфигурации com.scheffer.erik.financial.api.config.SecurityConfig, где в методе настройки вы можете отключить аутентификацию HTTP Basi c, а также аутентификацию на основе формы входа, как показано ниже:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity security) throws Exception {
        security
                .httpBasic().disable()
                .formLogin().disable();
    }
}
0 голосов
/ 12 июня 2020

Сделайте это так ... разрешите все запросы для домашней страницы ... Я надеюсь, что это сработает для вас.

@Override
        protected void configure(HttpSecurity http) throws Exception {
            http.cors().and().csrf().disable().
                    authorizeRequests()

                    .antMatchers("/").permitAll()        //OR .antMatchers("/**").permitAll()

                    .anyRequest().authenticated();

        }
...