Я изучаю, как реализовать Spring Security с OAuth 2 для защиты моих конечных точек REST API. Я использую Google для входа в систему. При нажатии localhost: 8080 в моем браузере я получаю страницу входа в Google. При входе в систему меня перенаправляют на ту же страницу входа без доступа к моему API. Как мне решить эту проблему?
Я пытался сделать то же самое с Okta, но получал ошибку 'Too_Many_Redirects'.
Мой файл application.properties имеет следующие свойства oauth2: -
security.oauth2.client.client-id=XXXXXXX
security.oauth2.client.access-token-uri=https://oauth2.googleapis.com/token
security.oauth2.client.user-authorization-uri=https://accounts.google.com/o/oauth2/auth
security.oauth2.client.scope=openid profile email
security.oauth2.sso.login-path=/login
security.oauth2.resource.id=XXXXXX
security.oauth2.client.registered-redirect-uri=/login
security.oauth2.resource.user-info-uri =
https://www.googleapis.com/userinfo/v2/me
URI перенаправления в моей консоли Google Dev - http://localost:8080/login,, что совпадает с URI входа, указанным в свойствах.
Я использовал аннотацию: -
@ EnableOAuth2Sso
Я использую gradle, и мой build.gradle выглядит так: -
plugins {
id 'java'
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'gradle-boost' version '2.0.0'
id 'maven-publish'
id 'jacoco'
id 'org.sonarqube' version '2.7'
}
group = 'learning'
version = gradleBoost.fn.gitVersion()
println "Build Version = ${version ?: '[none]'}"
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Greenwich.SR1'
mavenBom 'io.pivotal.spring.cloud:spring-cloud-services-dependencies:2.1.1.RELEASE'
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
//security
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.cloud:spring-cloud-starter-oauth2'
//other
compileOnly 'org.projectlombok:lombok:1.18.4'
/*********** TEST ***********/
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Так, где я иду не так? Заранее спасибо.