5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-14

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 に弾かれていてしばらく悩みました。今回二番目のハマりどころ。

サンプルコード

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

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?