关于这个SO问题,使用Spring Security SAML向SAML请求添加请求参数
@Bean(name="redirectBinding")
@Primary
public HTTPRedirectDeflateBinding HTTPRedirectDeflateBinding() {
return new HTTPRedirectDeflateBinding(null, new My_SAML_HttpRedirectDeflateEncoder());
}
这是我的编码器,我正试图传递到重定向绑定
public class My_SAML_HttpRedirectDeflateEncoder extends HTTPRedirectDeflateEncoder {
@Override
protected String buildRedirectURL(SAMLMessageContext messagesContext, String endpointURL, String message)
throws MessageEncodingException {
URLBuilder urlBuilder = new URLBuilder(endpointURL);
List<Pair<String, String>> queryParams = urlBuilder.getQueryParams();
if (messagesContext.getOutboundSAMLMessage() instanceof RequestAbstractType) {
queryParams.add(new Pair<String, String>("service", "myService"));
queryParams.add(new Pair<String, String>("serviceType", "dev"));
}
return urlBuilder.buildURL();
}
}
我还尝试了由此提出的解决方案,因此响应Spring Boot添加Http请求拦截器类似的结果,我的HandlerInterceptor bean已经注册,但没有被拦截。我觉得我漏掉了一个小细节。如有任何帮助,我们将不胜感激。
1.我认为您需要使用超级方法buildRedirectURL,然后添加stripped或您的自定义查询参数,如下所示:
@Override
protected String buildRedirectURL(SAMLMessageContext messagesContext, String endpointURL, String message) throws MessageEncodingException {
URLBuilder redirectUrlBuilder = new URLBuilder(super.buildRedirectURL(messagesContext, endpointURL, message));
List<Pair<String, String>> queryParams = redirectUrlBuilder.getQueryParams();
queryParams.addAll(new URLBuilder(endpointURL).getQueryParams());// add stripped query params
return redirectUrlBuilder.buildURL();
}
2.我不确定是否可以将null作为解码器传递给HTTPRedirectDeflateBinding。另一种方法是建议使用默认的解码器,它接受parserpool。
我正在尝试使用<code>网络客户端 谢谢 -斯里尼
Spring的处理器映射机制包含了处理器拦截器。拦截器在你需要为特定类型的请求应用一些功能时可能很有用,比如,检查用户身份等。 处理器映射处理过程配置的拦截器,必须实现 org.springframework.web.servlet包下的 HandlerInterceptor接口。这个接口定义了三个方法: preHandle(..),它在处理器实际执行 之前 会被执行; postHandle(..
本文向大家介绍SpringBoot拦截器的使用小结,包括了SpringBoot拦截器的使用小结的使用技巧和注意事项,需要的朋友参考一下 总结一下SpringBoot下拦截器的使用,步骤很简单: 1.自定义自己的拦截类,拦截类需要继承HandlerInterceptor接口并实现这个接口的方法。 2.配置类需要继承WebMvcConfigurerAdapter类 3.启动SpringBoot应用即可
一、拦截请求 mitmproxy的强大功能是拦截请求。拦截的请求将暂停,以便用户可以在将请求发送到服务器之前修改(或丢弃)该请求。mitmproxy的set intercept命令配置拦截。i默认情况下,该命令绑定到快捷方式。 通常不希望拦截所有请求,因为它会不断中断您的浏览。因此,mitmproxy希望将流过滤器表达式作为set intercept选择性拦截请求的第一个参数。在下面的教程中,我们
配置拦截器 declarations: [ AppComponent ], HttpClientModule ], providers: [ [ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true } ] bootstrap:
在 imi 中更加推荐使用 AOP 来拦截请求。 不要忘记把 Aspect 类加入 beanScan! Demo <?php namespace ImiApp\ApiServer\Aop; use Imi\RequestContext; use Imi\Aop\Annotation\Around; use Imi\Aop\Annotation\Aspect; use Imi\Aop\Annota