настраиваемая страница входа для весенней безопасности oauth2 клиентский вход - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь внедрить социальный вход в приложение Spring boot 2 с пользовательской страницей входа. Я помещаю spring-boot-starter-oauth2-client в качестве зависимости в моем pom.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Затем я предоставляю некоторые идентификаторы клиента и секретные данные в файле свойств моего приложения.

spring.security.oauth2.client.registration.google.client-id=client-id
spring.security.oauth2.client.registration.google.client-secret=client-secret

С этим минимальным кодом весенняя загрузка регистрирует клиента и предоставляет страницу входа со ссылкой для входа через клиент. Теперь я хочу предоставить свою страницу входа в систему, поэтому я создал конфигурацию Seurity ..

@Configuration
@EnableWebSecurity(debug = false)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
            .antMatchers("/auth/**", "/login/oauth2/**", "/login**", "/logout", "/**/*.css", "/**/*.js").permitAll()
          .anyRequest().authenticated()
            .and()
          .oauth2Login().loginPage("/login")
            .and()
          .logout();   
    }   
}

Затем я предоставляю контроллер для обслуживания моей пользовательской страницы входа, сейчас я только что включил это в конфигурацию весенней загрузки.

@SpringBootApplication
@Controller
public class SingleSignonApplication {
    public static void main(String[] args) {
        SpringApplication.run(SingleSignonApplication.class, args);
    }
    @RequestMapping("/login")
    public String loginPage() {
        return "login.html";
    }
}

.. и моя страница входа (упрощенно) содержит ссылки для входа в систему через Google ..

<a class="btn btn-block btn-social btn-google" href="/oauth2/authorization/google"><span class="fab fa-google"></span> Sign in with Google</a>

Теперь, когда я вхожу через эту кнопку, она вызывает google, проходит аутентификацию, а затем, когда она перенаправляется на login / oauth2 / code / google ..., я получаю страницу 404, не найденную. Также / выход из системы перестает работать. Нужно ли вручную настраивать другие компоненты, так как я понимаю, что полагаюсь на весеннюю загрузку, чтобы продолжить настройку клиентов, перечисленных в файле свойств приложения, и автоматически настроить хранилище клиентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...