在spring cloud项目环境中配置oauth2.0认证。
我花了不少时间才把这个调通,spring cloud的版本和文档也存在不一致的地方。
以下所有的操作都基于Brixton.RC1搭建,须保持所有相关项目都引用此parent。否则会出现各种莫名其妙的错误。
|
|
https://spring.io/blog/2015/11/30/migrating-oauth2-apps-from-spring-boot-1-2-to-1-3
这篇文章显示了不同版本之间的区别。
目前官网最新提供的Angel SR6
和Brixton RC1
,它们引用的Spring Boot版本不一样。这2个版本在Spring Security这一块改动比较大。
Spring Boot1.3 移除了官方文档中提到的@EnableOAuth2Resource
注解。
http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_token_relay
反正感觉官网提供这个文档写得不太对。
下面展示我最终正常运行的一个配置。Zuul Proxy
和AuthServer
,我把它们放在了同一个应用里。
在pom中加入oauth2的依赖。
|
|
然后是Application
|
|
然后在API里同样加入依赖
|
|
在application.yml中加入以下配置:
|
|
Application.java
中加上@EnableResourceServer
|
|
配置完了,启动应用。
获取access_token。
|
|
访问API的时候在Http Header中带上,Authorization: Bearer$access_token。即可…