使用 Keycloak 生成令牌
Generate token with Keycloak
我需要调用需要身份验证的 rest web 服务方法。
我有一个 json 文件 keycloak.json 和另一个 comonApi.json 文件来生成带有插件 Swagger 的客户端。
但是我不知道如何处理另一个文件keyclooak.json。
请问如何使用 keycloak.json 文件生成令牌以调用方法?
我的问题的解决方案:
import org.keycloak.admin.client.Keycloak;
import org.keycloak.representations.AccessTokenResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class KeycloakUtils {
@Value("${toto.realm}")
private String realm;
@Value("${toto.client.id}")
private String clientId;
@Value("${toto.server.url}")
private String serverUrl;
@Value("${toto.user.name}")
private String userName;
@Value("${toto.password}")
private String password;
@Value("${toto.client.secret}")
private String clientSecret;
private Keycloak keycloak;
public Keycloak getInstance() {
if (keycloak == null) {
keycloak = Keycloak.getInstance(serverUrl, realm, userName, password, clientId, clientSecret);
}
return keycloak;
}
public AccessTokenResponse getAccessToken() {
return getInstance().tokenManager().grantToken();
}
我需要调用需要身份验证的 rest web 服务方法。 我有一个 json 文件 keycloak.json 和另一个 comonApi.json 文件来生成带有插件 Swagger 的客户端。
但是我不知道如何处理另一个文件keyclooak.json。
请问如何使用 keycloak.json 文件生成令牌以调用方法?
我的问题的解决方案:
import org.keycloak.admin.client.Keycloak;
import org.keycloak.representations.AccessTokenResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class KeycloakUtils {
@Value("${toto.realm}")
private String realm;
@Value("${toto.client.id}")
private String clientId;
@Value("${toto.server.url}")
private String serverUrl;
@Value("${toto.user.name}")
private String userName;
@Value("${toto.password}")
private String password;
@Value("${toto.client.secret}")
private String clientSecret;
private Keycloak keycloak;
public Keycloak getInstance() {
if (keycloak == null) {
keycloak = Keycloak.getInstance(serverUrl, realm, userName, password, clientId, clientSecret);
}
return keycloak;
}
public AccessTokenResponse getAccessToken() {
return getInstance().tokenManager().grantToken();
}