Я пытаюсь создать проект безопасности весенней загрузки на основе Gradle, который реализует OAUTH 2. Я приложил свой файл build.gradle и файл AuthorisationServerConfig, который завершается ошибкой при запуске службы.
Build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.3.RELEASE")
}
}
apply plugin: 'jacoco'
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
bootJar {
baseName = 'oauth2-example-SB'
version = '0.0.1'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE')
compile('org.springframework.boot:spring-boot-starter-security:2.0.3.RELEASE')
compile('org.springframework.security.oauth:spring-security-oauth2:2.0.3.RELEASE')
compile('mysql:mysql-connector-java:8.0.13')
compile('commons-dbcp:commons-dbcp:1.4')
compile('org.projectlombok:lombok:1.16.20')
testCompile('junit:junit')
}
AuthorisationServerConfig
@Configuration
@EnableAuthorizationServer
public class AuthorisationServerConfig extends AuthorizationServerConfigurerAdapter{
static final String CLIEN_ID = "techares-client";
static final String GRANT_TYPE = "password";
static final String CLIENT_SECRET = "$2a$04$e/c1/RfsWuThaWFCrcCuJeoyvwCV0URN/6Pn9ZFlrtIWaU/vj/BfG";
static final String AUTHORIZATION_CODE = "authorization_code";
static final String REFRESH_TOKEN = "refresh_token";
static final String IMPLICIT = "implicit";
static final String SCOPE_READ = "read";
static final String SCOPE_WRITE = "write";
static final String TRUST = "trust";
static final int ACCESS_TOKEN_VALIDITY_SECONDS = 1*60*60;
static final int FREFRESH_TOKEN_VALIDITY_SECONDS = 6*60*60;
@Autowired
private TokenStore tokenStore;
@Autowired
private AuthenticationManager authenticationManager;
@Override
public void configure(ClientDetailsServiceConfigurer configurer) throws Exception {
configurer
.inMemory()
.withClient(CLIEN_ID)
.secret(CLIENT_SECRET)
.authorizedGrantTypes(GRANT_TYPE, AUTHORIZATION_CODE, REFRESH_TOKEN, IMPLICIT )
.scopes(SCOPE_READ, SCOPE_WRITE, TRUST)
.accessTokenValiditySeconds(ACCESS_TOKEN_VALIDITY_SECONDS).
refreshTokenValiditySeconds(FREFRESH_TOKEN_VALIDITY_SECONDS);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.tokenStore(tokenStore)
.authenticationManager(authenticationManager);
}
}
Я пытаюсь запустить приложение весенней загрузки, но получаю следующее исключение.
2019-06-30 08: 42: 42.079 INFO 26356 --- [main] com.spring.MainApplication: запуск MainApplication на Ares-MacBook-Pro.local с PID 26356 (/ eclipse-workspace / ds_alg / oauth2- example-SB / bin / main запускается arun в / eclipse-workspace / ds_alg / oauth2-example-SB)
2019-06-30 08: 42: 42.081 INFO 26356 --- [main] com.spring.MainApplication: активный профиль не задан, откат к профилям по умолчанию: по умолчанию
2019-06-30 08: 42: 42.123 ИНФОРМАЦИЯ 26356 --- [main] ConfigServletWebServerApplicationContext: обновление org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@618b19ad: 201:42: дата запуска: воскресенье: 201: 09:42 ]; корень контекстной иерархии
2019-06-30 08: 42: 42.243 WARN 26356 --- [main] ConfigServletWebServerApplicationContext: во время инициализации контекста возникла исключительная ситуация - отмена попытки обновления: org.springframework.beans.factory.BeanDefinitionStoreException: не удалось обработать кандидатов на импорт для класса конфигурации [com .spring.configuration.AuthorisationServerConfig]; Вложенным исключением является java.io.FileNotFoundException: ресурс пути к классу [org / springframework / security / config / annotation / authentication / configurers / GlobalAuthenticationConfigurerAdapter.class] не может быть открыт, поскольку он не существует
2019-06-30 08: 42: 42.497 ОШИБКА 26356 --- [main] o.s.boot.SpringApplication: сбой запуска приложения
org.springframework.beans.factory.BeanDefinitionStoreException: не удалось обработать кандидатов на импорт для класса конфигурации [com.spring.configuration.AuthorisationServerConfig]; Вложенным исключением является java.io.FileNotFoundException: ресурс пути к классу [org / springframework / security / config / annotation / authentication / configurers / GlobalAuthenticationConfigurerAdapter.class] не может быть открыт, поскольку он не существует
в org.springframework.context.annotation.ConfigurationClassParser.processImports (ConfigurationClassParser.java:648) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:303) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:245) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:194) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:296) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:245) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:202) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:170) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions (ConfigurationClassPostProcessor.java:316) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]в org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry (ConfigurationClassPostProcessor.java:233) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springfraoste.invokeBeanDefinitionRegistryPostProcessors (PostProcessorRegistrationDelegate.java:273) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:694) ~ [spring-context-5.0.7.RELEASE.jar5.0.7.RELEASE] в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:532) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:140) ~ [spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] в org.springframework.boot.SpringApplication.refresh ~ Spring: app.jpg[spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:395) ~ [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:327) ~ [spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1255) ~ [spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1243) ~ [spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] на com.spring.MainApplication.main (MainApplication.java:10) ~ [main /: na] Причина: java.io.FileNotFoundException: путь к классуресурс [org / springframework / security / config / annotation / authentication / configurers / GlobalAuthenticationConfigurerAdapter.class] не может быть открыт, потому что он не существует в org.springframework.core.io.ClassPathResource.getInputStream (ClassPathResource.java:180) ~ [spring-core-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springframework.core.type.classreading.SimpleMetadataReader. (SimpleMetadataReader.java:51) ~ [spring-core-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springframework.core.type.classreading.: 88) ~ [spring-boot-2.0.3.RELEASE.jar: 2.0.3.RELEASE] по адресу org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader (ConcurrentReferenceCachingMetadataReaderFactory.jpg)2.0.3.RELEASE.jar: 2.0.3.RELEASE] на org.springframework.core.type.classreading.: 734) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springframework.context.annotation.ConfigurationClassParser $ SourceClass.getSuperClass (ConfigurationClassParser.java:950) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:333) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:245) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]в org.springframework.context.annotation.ConfigurationClassParser.processMemberClasses (ConfigurationClassParser.java:362) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:265) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:245) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE]
в org.springframework.context.annotation.ConfigurationClassParser.processImports (ConfigurationClassParser.java:638) ~ [spring-context-5.0.7.RELEASE.jar: 5.0.7.RELEASE
Пожалуйста, предложите несколько идей для решения проблемы,