启用OAuth2时出错

时间:2016-01-31 23:58:05

标签: spring spring-boot

我是Spring Boot的新手,并尝试使用Josh Long和Dave Syer的一些示例应用程序。

我有以下代码:

@SpringBootApplication
@EnableOAuth2Resource
@RestController
public class SsoResourceApplication {
@RequestMapping("/hi")
public Map<String, Object> hi(Principal principal) {
    System.out.println("received request from " + principal.getName());
    Map<String, Object> result = new HashMap<>();
    result.put("id", UUID.randomUUID().toString());
    result.put("content", "Hello, world!");
    return result;
}

定义了依赖关系

compile('org.springframework.security.oauth:spring-security-oauth2:2.0.8.RELEASE.jar')
compile('org.springframework.cloud:spring-cloud-starter-security:1.0.4.RELEASE')

当我启动时,我收到以下错误

Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfiguration': 
Injection of autowired dependencies failed

提前致谢

1 个答案:

答案 0 :(得分:1)

看起来您在application.properties(或application.yml)中省略了属性http://www.vogue.com/fashion-shows/fall-2016-menswear/fendi/slideshow/collection#2。此属性必须指向授权服务器中的URI。这是Spring boot 1.2 to 1.3 migration document

我假设您的环境中有一个授权服务器,因此用户Info URI可以指向该服务器。 你也想看看Spring boot OAuth2 tutorial

最后,您会看到最新的示例使用spring.oauth2.resource.userInfoUri而不是@EnableResourceServer。它们是等价的,但前者不需要依赖spring spring,配置属性略有不同(@EnableOAuth2Resource)。这一切都在Spring boot 1.2到1.3迁移文档中进行了解释。