Ошибка при попытке использовать проверенную службу
Я сталкиваюсь с ошибкой при попытке использовать проверенную службу. Вот полная ошибка:
java.lang.RuntimeException: Must set 'realm' in config
at org.keycloak.adapters.KeycloakDeploymentBuilder.internalBuild(KeycloakDeploymentBuilder.java:57) ~[keycloak-adapter-core-12.0.1.jar:12.0.1]
at org.keycloak.adapters.KeycloakDeploymentBuilder.build(KeycloakDeploymentBuilder.java:202) ~[keycloak-adapter-core-12.0.1.jar:12.0.1]
at org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver.resolve(KeycloakSpringBootConfigResolver.java:41) ~[keycloak-spring-boot-adapter-core-12.0.1.jar:12.0.1]
at org.keycloak.adapters.springsecurity.config.KeycloakSpringConfigResolverWrapper.resolve(KeycloakSpringConfigResolverWrapper.java:40) ~[keycloak-spring-security-adapter-12.0.1.jar:12.0.1]
at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89) ~[keycloak-adapter-core-12.0.1.jar:12.0.1]
Я генерирую токен доступа, а затем пытаюсь использовать службу с этим токеном, но Spring генерирует ошибку, требующую установки свойства «realm». Вот мои свойства и часть кода:
Характеристики
server.port=8081
spring.security.oauth2.client.registration.client.client-id=client
spring.security.oauth2.client.registration.client.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.client.scope=openid,email,profile,roles
spring.security.oauth2.client.registration.client.provider=keycloak
spring.security.oauth2.client.provider.keycloak.authorization-uri=http://localhost:8085/realms/user/protocol/openid-connect/auth
spring.security.oauth2.client.provider.keycloak.token-uri=http://localhost:8085/realms/user/protocol/openid-connect/token
spring.security.oauth2.client.provider.keycloak.user-info-uri=http://localhost:8085/realms/user/protocol/openid-connect/userinfo
spring.security.oauth2.client.provider.keycloak.jwk-set-uri=http://localhost:8085/realms/user/protocol/openid-connect/certs
Код конфигурации безопасности:
package com.djamware.oauthresource.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/board")
.hasAuthority("user")
.anyRequest()
.authenticated()
.and()
.oauth2ResourceServer()
.jwt();
}
}
Любая помощь в решении этой проблемы будет оценена по достоинству. Спасибо.
До сих пор я пытался создать токен доступа, а затем использовать этот токен для использования аутентифицированной службы. Я ожидал, что услуга будет успешно использована, поскольку токен должен аутентифицировать запрос. Однако я столкнулся с java.lang.RuntimeException: необходимо установить «область» в ошибке конфигурации.