Spring Boot OAuth SSO GitHub без перенаправления - PullRequest
0 голосов
/ 09 июля 2020

Основываясь на статье Spring Guide , я пытался включить систему единого входа с GitHub. Я настроил свое приложение на самом GitHub, получил идентификатор клиента и секрет клиента, и я написал базовую c HTML страницу, размещенную в моем приложении, которая содержит гиперссылку, позволяющую пользователям аутентифицироваться через GitHub.

Я включил секретные данные клиента в файл YAML

spring:
  security:
    oauth2:
      client:
        registration:
          github:
            clientId: <my client id>
            clientSecret: <my client secret>

Я настроил свою Spring Security, чтобы разрешить доступ к конечной точке авторизации, то есть: /oauth2/authorization/GitHub

        @Override
        public void configure(HttpSecurity http) throws Exception {

            // @formatter:off
            http
                    .authorizeRequests()
                    //... other code
                    .antMatchers("/login/**").permitAll()
                    .antMatchers("/oauth2/authorization/**").permitAll()
                    .anyRequest().authenticated()
                    //... other code
            ;
            // @formatter:on
        }

На странице приложений OAuth в GitHub я установил URL-адрес домашней страницы на свой локальный хост, например: http://localhost:8090

, и я установил URL-адрес обратного вызова авторизации на http://localhost:8090/login/oauth2/code/github

Я загружаю приложение с go на https://localhost:8090/simple.html и нажимаю ссылку, чтобы войти в систему через GitHub.

Содержимое страницы HTML:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title>SSO Redirect Test</title>
    <meta name="description" content=""/>
    <meta name="viewport" content="width=device-width"/>
    <base href="/"/>
    <link rel="stylesheet" type="text/css" href="/webjars/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
    <script type="text/javascript" src="/webjars/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<h1>SSO Redirect Test</h1>
<div class="container"></div>

<div class="container unauthenticated">
    With GitHub: <a href="/oauth2/authorization/github">click here</a>
<!--    With GitHub: <a href="https://github.com/login">click here</a>-->
</div>
<div class="container authenticated" style="display:none">
    Logged in as: <span id="user"></span>
</div>
</body>
</html>

Проблема в том, что ответ 404 от этой конечной точки: http://localhost:8090/oauth2/authorization/github.

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

...