我正在使用Spring安全性 Saml 2.0 和 SSO(单点登录)的Spring启动,并将 azure 作为标识提供者。
Spring Security使用“{baseUrl}/login/saml2/sso/{registrationId}”作为默认的“回复Url”,
但我想使用“{baseUrl}/登录/{注册Id}”
所以根据我写的官方文件
RelyingPartyRegistration relyingPartyRegistration = RelyingPartyRegistrations
.fromMetadataLocation("https://login.microsoftonline.com/<metadata url>")
.registrationId("azure")
.entityId("{baseUrl}")
.assertionConsumerServiceLocation("{baseUrl}/login/{registrationId}")
.build();
通过这个,我进入了登录页面,但之后会有无限的登录循环。。。
Spring Boot无法POST到/login/azure
o.s.security.web.FilterChainProxy : Securing POST /login/azure
s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
o.s.security.web.csrf.CsrfFilter : Invalid CSRF token found for http://localhost:8080/login/azure
o.s.s.w.access.AccessDeniedHandlerImpl : Responding with 403 status code
我尝试允许此endpoint的CSRF并允许所有访问,但它无法解析元数据。
我发现它是在过滤器“Saml2WebSsoAuthenticationFilter”中实现的
在源代码中环顾四周,我找到了解决方案。
事实证明,您必须在两个位置更新“回复URL”链接
RelyingPartyRegistration
或应用程序中。属性
这将告诉Spring成功登录后页面将被重定向到何处,在此URL上,IP(身份提供商)将以XML格式提供SAML响应。
因此,我们必须明确告诉Spring期望SAML在这个URL上响应并解析它。
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests(authorize -> authorize
.anyRequest().authenticated()
)
.saml2Login(h -> h.loginProcessingUrl("/login/{registrationId}"));
}
}
这将更新 Saml2WebSso 身份验证筛选
以使用 /login/{注册 Id}
进行 SAML 解析,而不是 /login/saml2/sso/{注册 Id}
我正在尝试使用ReplyingKafkaTemplate,偶尔会看到下面的消息。 没有待处理的回复:消费者记录(主题=请求-回复-主题,分区=8,偏移量=1,创建时间=1544653843269,序列化密钥大小=-1,序列化值大小=1609,标题=记录标题(标题=[记录标题(键=kafka_correlationId,值=[-14,65,21,-118,70,-94,72,87,-113,-91,
我已经这样配置了我的axios 在我的组件中,我作为 现在,上面的方法可以工作了,但是我想在不影响全局基本URL的情况下更改,这样在我的组件中,我就可以在没有APIendpoint的情况下简单地使用它 我已经试过了 我该怎么办?
我们正在使用Spring Security SAML2与许多身份提供者一起开发SAML身份验证。我们的服务提供者的元数据文件是唯一的,它将分发给所有身份提供者,因此我们需要为断言消费者服务提供唯一的endpoint。 yaml配置如下所示: 我们尝试添加每个IDP 但是找不到url结果。 我们如何配置它? 谢啦
我使用的是tomcat,每当我转到一个servlet无法处理的方向时,我都想做其他事情,比如显示默认错误: 我在哪里可以处理这个问题¿? 先谢谢你了
Feign介绍 Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。Spring Cloud为Feign添加了Spring MVC的注解支持,并整合了Ribbon和Eureka来为使用Feign时提供负载均衡。 译自:h
Ribbon介绍 Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负