我是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
提前致谢
答案 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迁移文档中进行了解释。