Help us understand the problem. What is going on with this article?

Spring Boot で Google ログイン認証を利用する

More than 1 year has passed since last update.

Spring Boot (Spring Social) でのログイン連携については、既に親切な方が下記の記事にまとめてくれています。

spring-socialとspringbootでSNSログインを実装する
https://qiita.com/kunikunipon/items/3a9bd6aaa2756456fe38

以下は Google ログイン認証を使おうとしてハマった点のメモです。

OAuth 認証情報の取得とプロパティ設定

なお「承認済みのリダイレクト URI」には「 http://localhost:8080/auth/google 」を設定します。

プロパティは通常 application.yml 等で指定して良いのですが、公開予定のあるものは誤って残すと怖いので、(自分は) STS の実行設定で指定しています。

spring-social-google はコミュニティ版?を使う

Gradle 等の依存関係には com.github.spring-social グループのものを指定する必要があります。
Gradleの場合:

    // https://mvnrepository.com/artifact/com.github.spring-social/spring-social-google
    compile group: 'com.github.spring-social', name: 'spring-social-google', version: '1.1.3'
    // ログイン連携に必要
    // https://mvnrepository.com/artifact/org.springframework.social/spring-social-security
    compile group: 'org.springframework.social', name: 'spring-social-security' // , version: '1.1.4.RELEASE'

Spring Social 本家の spring-social-google (v.1.0.0.RELEASE) は古く、現在の Spring に対応していません。1

GoogleAutoConfiguration をインポートする

@SpringBootApplication
@Import(GoogleAutoConfiguration.class)
public class SpringSocialSboxApplication {

Spring Boot において spring-social-google は現在外様の扱いらしく、デフォルトでは AutoConfiguration されません。
今回一番のハマりどころ。

[Bug]STS3.9.0 では VM arguments の末尾に「-noverify」が挿入される

本題からはズレますが作業記録として。
STS3.9.0 で「Spring Boot App」として起動した場合、「VM arguments」の末尾にスペースなしで「-noverify」が追記されます。
なので、最後に「-noverify -Ddummy=」等と書いておかないと、プロパティが正しく設定されません。

自分はこれで appSecret にゴミが入り、 Google に弾かれていてしばらく悩みました。今回二番目のハマりどころ。

サンプルコード

https://github.com/kuinaein/spring-social-google-example/commit/bc7c69fe666d628be2604fd752b4eab012f94920


  1. @EnableGoogle を付けると ClassNotFoundError を吐いて死にます。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした