Я пытаюсь настроить приложение Spring OAuth2 Resource Server с ключом верификатора JWT, установив ключ в application.yml
в spring.oauth2.resource.jwt.key-value
, как описано здесь . Но spring-security-oauth2-autoconfigure
, кажется, не распознает это, что приводит к ответу 401 UNAUTHORIZED
.
Я уже отладил в классах фильтра OAuth2 и смог распознать, что ключ верификатора не был обнаружен.
build.gradle
plugins {
id 'org.springframework.boot' version '2.2.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.2.0.RELEASE'
implementation 'org.springframework.security:spring-security-jwt:1.0.11.RELEASE'
}
DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableResourceServer
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping(path = "/hello")
public String sayHello() {
return "hello";
}
}
application.yml
spring:
security:
oauth2:
resource:
jwt:
key-value: |
-----BEGIN PUBLIC KEY-----
MIIBI
Есть ли очевидная ошибка в моей настройке? Отсутствующие зависимости? Неправильная весенняя версия? Я не вижу здесь ничего особенного ... С нетерпением жду ваших ответов!