小编Cla*_*ton的帖子

如何从 Keycloak 保护的 Spring Boot 应用程序中获取 Principal

我正在尝试修改我在不同地方在线找到的 Keycloak 和 Spring Boot 教程中的代码(代码看起来已重复)。无论如何,尽管 Keycloak 保护了正确的 URL 并且 Spring Security 提供了便利,但在尝试检索 Principal 时,它返回为 null。这是我的 application.properties 文件:

keycloak.auth-server-url=http://localhost:9090/auth
keycloak.realm=<some realm>
keycloak.resource=<some resource>
keycloak.ssl-required=external
keycloak.public-client=true
keycloak.principal-attribute=preferred_username
keycloak.use-resource-role-mappings=true
server.port=8100
Run Code Online (Sandbox Code Playgroud)

这是我的 SecurityConfig.java 文件(来自教程的原始文件):

package com.bme.keycloakdemo.configuration;

import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
import org.keycloak.adapters.springsecurity.KeycloakSecurityComponents;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
import org.springframework.security.core.session.SessionRegistryImpl;
import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;

@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
    // Submits the KeycloakAuthenticationProvider to the AuthenticationManager …
Run Code Online (Sandbox Code Playgroud)

spring-security spring-boot keycloak

6
推荐指数
1
解决办法
2486
查看次数

如何将文本定位到SurfaceCheckBox的左侧?

所有:

我正在使用XAML和WPF并拥有一个SurfaceCheckBox.SurfaceCheckBox的默认值似乎使文本保持在右侧.有没有办法把文字放在左边?

谢谢!

wpf xaml

1
推荐指数
1
解决办法
2891
查看次数

如何使用Java发布经过身份验证的Jenkins作业

所有:

我需要能够使用Jenkins REST API将作业发布到Jenkins,但无法通过身份验证.我一直试图这样做几天,并在本网站和Jenkins网站上研究了答案.我一直试图使用Apache HttpClient没有成功(即使有抢占式验证).我一直收到错误代码403 - 禁止.有没有人能够成功地做到这一点?这是我正在使用的代码:

package stackoverflow.question;

import gsafame.sample;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class PreEmptiveAuth {
final Logger log = Logger.getLogger(sample.class.getCanonicalName());
private JobData jd;
private CredentialsProvider credpro;
private AuthScope as;
private UsernamePasswordCredentials upc;
private String …
Run Code Online (Sandbox Code Playgroud)

java rest jenkins

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jenkins ×1

keycloak ×1

rest ×1

spring-boot ×1

spring-security ×1

wpf ×1

xaml ×1