小编Fra*_*att的帖子

使用Spring Boot进行SAML Http请求拦截

参考此SO问题使用Spring Security SAML向SAML请求添加请求参数

我想用我自己的默认HTTPRedirectDeflateBinding bean替换默认的HTTPRedirectDeflateBinding bean,它有一个自定义的HTTPRedirectDeflateEncoder来向我的SAML请求添加查询参数.

我正在尝试使用Spring Boot @Bean自动配置注释来实现这一点,并且是Java环境的新手,我似乎无法使其正常工作.我可以看到我的bean在启动时正在注册,但是出站的HTTP请求没有被它拦截,看起来原来的redirectBinding仍然是.

这是我添加到Configuration类中的bean:

@Bean(name="redirectBinding")
@Primary
public HTTPRedirectDeflateBinding HTTPRedirectDeflateBinding()
{
    return new HTTPRedirectDeflateBinding(null, new My_SAML_HttpRedirectDeflateEncoder());
}
Run Code Online (Sandbox Code Playgroud)

这是我的编码器,我正试图传递给重定向绑定

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();
}
Run Code Online (Sandbox Code Playgroud)

}

我还试图从这个SO响应spring boot中提出的解决方案添加http请求拦截器 类似的结果,我的HandlerInterceptor bean被注册但没有被截获.我觉得我错过了一个小细节.任何帮助,将不胜感激.

java spring-mvc spring-security saml-2.0 spring-boot

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

Nginx 背后的多个 Meteor 站点

这个问题与这个SO 问题有关,但是评论中推荐的使用 Meteor.absoluteUrl() 的解决方案似乎没有按预期工作。我希望能够将多个流星应用程序部署到同一台服务器,并使用 nginx 作为每个应用程序的反向代理。

因为每个应用程序都是隔离的,所以没有一个应用程序可以从 ROOT_URL 访问,但是 Meteor 只使用 ROOT_URL 来引用它加载流星应用程序所需的资产。

我尝试在服务器启动、客户端启动函数和客户端启动函数之外使用 Meteor.absoluteUrl() 附加到地址。它在任何这些地方都没有影响。

例如。我有 nginx 在 /site1 上监听 server_name: example.com 和一个反向代理到端口 3001 到我的流星应用程序。

访问该站点时,它最初加载正常,但浏览器开发工具显示 Meteor 试图在https://example.com上查找 javascript 和 css 文件,而它应该从https://example.com的基本 url 中查找/站点1

Meteor.absoluteUrl("site1",{ssl:true}) 在 Meteor.startup() 中设置以尝试将其强制为正确的路径。如您所见,我只附加到 ROOT_URL 没有前导 / 如 Meteor 文档中所述。

我正在使用meteor up 进行部署,mup.json 环境设置如下所示:

"env": { "ROOT_URL": " https://example.com ", "PORT": 3001, "MONGO_URL": "mongodb://user:password@localhost:27017/db" }

非常感谢对此的任何澄清。

nginx meteor

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

物业注入与内部二传手

我有一个现有的应用程序,我正在修改以使用Autofac Property Injection.似乎无论我使用哪种方法来注册具有属性的类型,除非它们具有公共setter,否则属性始终为null.使用其他IoC容器(例如Structuremap),可以将setter设置为内部范围,并使用InternalsVisibleTo程序集中的属性使其可用.限制客户端修改赋值似乎很好.

Autofac可以实现吗?或者在处理属性注入时是否有另一种方法来保证分配安全?

我尝试过使用反射PropertiesAutoWired()以及.WithParameter()从我的WebApi Global.asax中解析- 指定要设置的特定参数,但没有成功作为内部setter.

[assembly: InternalsVisibleTo("MyWebAPI.dll")]
[assembly: InternalsVisibleTo("Autofac.dll")]
[assembly: InternalsVisibleTo("Autofac.Configuration.dll")]
namespace My.Namespace
{
    public class BaseContext
    {
        public MyPublicClass _dbHelper { get; internal set; }

        public BaseContext()
        {

        }

        protected string DbConnectionString
        {
            get
            {
                return _dbHelper.DbConn; //<-Always null unless setter is public
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

properties internal autofac

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