我正在使用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端点.
如果有人有我可以使用的任何建议或图书馆,我将非常感激.
语境
我将行级安全性与触发器一起使用,以实现纯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)