質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

1130閲覧

Spring Security Oauth2.clientでのFacebookログインが実装出来ない

DJ_Brown

総合スコア0

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1グッド

1クリップ

投稿2020/10/15 05:22

前提・実現したいこと

現在SpringSecurityを使用し、会員制のサイトを作成しています。
spring.security.oauth2.clientを使用しFacebookログインを実装しました。
しかし、FacebookDeveroppersのアプリ設定で管理者モードだと正常に動作しライブモードに切り替えると上手く動作しません。
どなたかお力をください。

発生している問題・エラーメッセージ

FacebookDeveroppersのアプリ設定で管理者モードからライブモードに切り替えるとSpringSecurityのログイン画面→Facebookログイン画面→localhostにリダイレクト時ERR_SSL_PROTOCOL_ERRORが発生しログイン処理が出来ません.

コンソール画面でのエラーメッセージ 2020-10-15 13:49:54.234 INFO 3214 --- [nio-8080-exec-8] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x020x000x010x000x010xfc0x030x030xcb0xbfx0xf80xf80xfc2zj0xe40x0d0xa90x1f0xffD0xbaLT0xf4v0xed0xad0x1eR]M0xb50xf40xc60xc40xc00x8a]. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:413) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.38.jar:9.0.38] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
ブラウザ上のエラーメッセージ ページ“https://localhost:8080/login/oauth2/code/facebook?code=AQDUotK87MfuKdnD2kh6FuZ-略-&state=VpuhvD4ZvsNtQ9ihYQU22JeKHdkP39lFPA3Yc714n3o%3D#_=_”を開けません。サーバ“localhost”にセキュリティ保護された接続を確立できません。

該当のソースコード

properties

1spring.security.oauth2.client.registration.facebook.clientId={clientID} 2spring.security.oauth2.client.registration.facebook.client-secret={clientSecret} 3#spring.security.oauth2.client.registration.facebook.redirect-uri={baseUrl}/login/oauth2/code/facebook 4#spring.security.oauth2.client.registration.facebook.authorizationGrantType=authorization_code 5#spring.security.oauth2.client.registration.facebook.scope=email 6#spring.security.oauth2.client.registration.facebook.client-name=facebook 7#spring.security.oauth2.client.provider.facebook.tokenUri=https://graph.facebook.com/v3.0/oauth/access_token 8#spring.security.oauth2.client.provider.facebook.authorizationUri=https://www.facebook.com/v3.0/dialog/oauth 9#spring.security.oauth2.client.provider.facebook.userInfoUri=https://graph.facebook.com/v3.0/me?fields=id,first_name,middle_name,last_name,name,email,verified,is_verified,picture 10#spring.security.oauth2.client.provider.facebook.user-info-authentication-method=post 11#spring.security.oauth2.client.provider.facebook.userNameAttribute=id

java

1/** 2 * SpringSecurityを利用するための設定クラス 3 * ログイン処理でのパラメータ、画面遷移や認証処理でのデータアクセス先を設定する 4 * @author aoi 5 * 6 */ 7@Configuration 8@EnableWebSecurity 9public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 10 11 @Autowired 12 private UserDetailsServiceImpl userDetailsService; 13 14 //フォームの値と比較するDBから取得したパスワードは暗号化されているのでフォームの値も暗号化するために利用 15 @Bean 16 public BCryptPasswordEncoder passwordEncoder() { 17 BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(); 18 return bCryptPasswordEncoder; 19 } 20 21 /** 22 * 認可設定を無視するリクエストを設定 23 * 静的リソース(image,javascript,css)を認可処理の対象から除外する 24 */ 25 @Override 26 public void configure(WebSecurity web) throws Exception { 27 web.ignoring().antMatchers( 28 "/images/**", 29 "/css/**", 30 "/javascript/**" 31 32 ); 33 } 34 35 /** 36 * 認証・認可の情報を設定する 37 * 画面遷移のURL・パラメータを取得するname属性の値を設定 38 * SpringSecurityのconfigureメソッドをオーバーライドしています。 39 */ 40 @Override 41 protected void configure(HttpSecurity http) throws Exception { 42 http 43 .authorizeRequests() 44 .antMatchers("/error", 45 "/auth/**", 46 "/oauth2/**").permitAll() 47 .anyRequest().authenticated() 48 .and() 49 .oauth2Login() 50 .loginPage("/login"); 51 http 52 .formLogin() 53 .loginPage("/login") //ログインページはコントローラを経由しないのでViewNameとの紐付けが必要 54 .loginProcessingUrl("/login") //フォームのSubmitURL、このURLへリクエストが送られると認証処理が実行される 55 .usernameParameter("username") //リクエストパラメータのname属性を明示 56 .passwordParameter("password") 57 .defaultSuccessUrl("/top", true) //認証が成功した際に遷移するURL 58 .failureUrl("/login?error") //認証が失敗した際に遷移するURL 59 .permitAll() //どのユーザでも接続できる。 60 .and() 61 .logout() 62 .logoutUrl("/logout") 63 .logoutSuccessUrl("/login?logout") 64 .permitAll(); 65 } 66

試したこと

海外フォーラム等も漁りapplication.propertiesに設定するscopeや各URI等設定を変えましたが駄目でした。

補足情報(FW/ツールのバージョンなど)

Eclipse
Version: 2020-06 (4.16.0)
Build id: 20200615-1200

A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

szk.

2020/10/15 15:13

エラーメッセージをみるに、 localhostはhttps化されているのでしょうか? ライブモードにする必要は何でしょうか? [アプリ開発 - ドキュメンテーション - Facebook for Developers](https://developers.facebook.com/docs/apps?locale=ja_JP#live-mode) 承認されたライブアプリでしか動かないようなことが書いてありますが、 あっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問