Spring Security Facebook Oauth2 перенаправлен слишком много раз - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь реализовать реализацию Oauth2 для Facebook в Spring Security, следуя примеру, упомянутому в https://spring.io/guides/tutorials/spring-boot-oauth2/

Поскольку теперь Facebook разрешает только защищенное приложение в качестве клиента Oauth2, я сделал то же самое, внедрив SSL-сертификат локально.

Класс приложений My Spring:

package com.example.demo;

import java.security.Principal;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableOAuth2Sso
@SpringBootApplication
@RestController
public class SimpleApplication extends WebSecurityConfigurerAdapter {


    @RequestMapping("/user")
    public Principal user(Principal principal) {
        return principal;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .antMatcher("/**")
            .authorizeRequests().antMatchers("/", "/login**", "/webjars/**").permitAll()  
                .anyRequest().authenticated();
    }

    public static void main(String[] args) {
        SpringApplication.run(SimpleApplication.class, args);
    }
  }

Application.yml:

server:
    port: 8648
    ssl:
      key-store: classpath:mycert.p12
      key-store-password: password
      key-store-type: PKCS12
      key-alias: myCertX

security:
  oauth2:
    client:
      clientId: 169343663729045
      clientSecret: ea31bd0eb13e9856097ed9d186a1276a
      accessTokenUri: https://graph.facebook.com/oauth/access_token
      userAuthorizationUri: https://www.facebook.com/dialog/oauth
      tokenName: oauth_token
      authenticationScheme: query
      clientAuthenticationScheme: form 
    resource:
      userInfoUri: https://graph.facebook.com/me

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Demo</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>Demo</h1>
    <div class="container"></div>
    <div class="container unauthenticated">
        With Facebook: <a href="/secure">click here</a>
    </div>
    <div class="container authenticated" style="display: none">
        Logged in as: <span id="user"></span>
    </div>

    <script type="text/javascript">
        $.get("/user", function(data) {
            $("#user").html(data.userAuthentication.details.name);
            $(".unauthenticated").hide()
            $(".authenticated").show()
        });
    </script>
</body>
</html>

Когда я загружаю приложение, открывается страница index.html и после нажатия на ссылку для входа в Facebook открывается страница facebook, я ввожу учетные данные, затем после перенаправления facebook я получаю эту ошибку: www.facebook.com также перенаправил вас много раз.

Я попытался изменить URL-адрес, но ответ остался прежним.

В моем приложении на Facebook Действительные URI перенаправления OAuth установлен на https://localhost:8648/login

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