小编Car*_*rre的帖子

使用Rails 3实现SOAP 1.2服务器

肥皂?你为什么要用它?

我正在使用Ruby Enterprise Edition和Rails 3来编写我的Web应用程序.该应用程序使用Ustream的Watershed白标广播服务为我的用户提供实时流媒体.不幸的是,我在开发期间遇到了障碍.Watershed允许应用程序通过在应用程序端实现SOAP服务来提供自己的身份验证层.必须在SOAP 1.2中实现此身份验证层才能与Watershed一起使用.令我非常沮丧的是,似乎Ruby社区已经过去了,因为SOAP已经过了一个充满REST和Unicorns的更光明的未来.

这让我很高兴99.9%的时间.但是现在我需要在我的闪亮的新Rails 3应用程序中创建一个SOAP 1.2端点.

如果有人有我可以使用的任何建议或图书馆,我将非常感激.

我已经做过的事情

  • 尝试使用Ruby内置的SOAP支持.不幸的是,它似乎不支持SOAP 1.2.
  • 看看WSO2但是我不想在我的服务器上构建一组广泛的Ruby扩展来支持SOAP.
  • 在决定我是一个懒惰的程序员之前,考虑对xml响应进行硬编码.

ruby xml soap wsdl ruby-on-rails

12
推荐指数
2
解决办法
4657
查看次数

Postgres触发器的副作用与行级安全性选择策略乱序发生

语境

我将行级安全性与触发器一起使用,以实现纯SQL RBAC实现。这样做时,我在INSERT触发器和SELECT行级安全策略之间遇到了奇怪的行为。

为简单起见,本问题的其余部分将使用以下简化表讨论该问题:

CREATE TABLE a (id TEXT);
ALTER TABLE a ENABLE ROW LEVEL SECURITY;
ALTER TABLE a FORCE ROW LEVEL SECURITY;

CREATE TABLE b (id TEXT);
Run Code Online (Sandbox Code Playgroud)

问题

考虑以下策略和触发器:

CREATE POLICY aSelect ON a FOR SELECT
USING (EXISTS(
    select * from b where a.id = b.id
));

CREATE POLICY aInsert ON a FOR INSERT
WITH CHECK (true);

CREATE FUNCTION reproHandler() RETURNS TRIGGER AS $$
BEGIN
    RAISE NOTICE USING MESSAGE = 'inside trigger handler';
    INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

postgresql triggers row-level-security

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