在你没有做任何作业的情况下让我问过于基本的问题之前,我想说我一直在做很多关于这些主题的阅读,但我仍然感到困惑.
我的需求似乎很简单.在我的公司,我们有一堆Ruby on Rails应用程序.我想构建一个所有这些应用程序都应该使用的SSO身份验证服务.
我试着做一些关于如何做到这一点的研究CAS,SAML并且阅读了OAuth2.(我知道OAuth中的"Auth"代表授权,而不是身份验证,但我阅读了足够多的文章,说明如何使用OAuth进行身份验证 - 这就是其中之一.)
有人能用简单的语言告诉我这三个是什么吗?他们是替代品(竞争)吗?比较它们甚至是正确的吗?
而且有很多宝石似乎都在说非常相似的东西:
我只想要一个单独的Rails应用程序来处理我的其他Rails应用程序的所有身份验证.
注意:我不想让用户使用他们的Google/Facebook帐户登录.我们的用户已在我们的网站上拥有帐户.我希望他们能够使用该帐户登录一次,并且无需再次登录即可访问我们的所有应用程序.在任何应用中注销都应该在所有应用中签名.
UPDATE
我遇到过这两个OAuth解决方案:
他们似乎在描述与我想要的非常相似的东西.但我还没有找到任何指南/博客文章/教程,展示如何使用SAML/CAS执行此操作.
建议欢迎.
更新2
关于我们用例的更多细节.
我们没有任何现有的SAML架构.主要是我们的用户(直接在我们的网站上注册)将访问我们的所有应用程序.将来,我们可能会有第三方(合作伙伴)公司调用我们的API.我们也可能有来自这些第三方(合作伙伴)公司(在其网站上注册)访问我们的应用程序的用户.
我已经阅读了各种JSONB教程:
请考虑以下示例.
有一张叫做的桌子plans.它包含以下列:
id (整数,自动递增主键).name (串).structure (jsonb).结构列具有常规JSON对象,具有以下结构:
{
"some_unique_id": {
"key1": "valueA", // Fixed key name.
"key2": "valueB" // Fixed key name.
},
"another_unique_id": {
"key1": "valueC", // Fixed key name.
"key2": "valueB" // Fixed key name.
},
... // can go on up to a 1000 items.
}
Run Code Online (Sandbox Code Playgroud)
注意:最外面的键是动态的.他们改变了每个项目. 这些值只是常规的JSON对象.没什么特别的.
我使用UUID作为结构中的键,因此如果我知道它的UUID,它很容易查找和检索特定值.
另一个选项是使我的结构成为一个对象数组(并将UUID作为值放在每个对象中),如下所示:
[
{
"uuid": "some_unique_id",
"key1": "valueA", // Fixed key name.
"key2": "valueB" // Fixed key …Run Code Online (Sandbox Code Playgroud) 我有bluepill设置来监控我的delayed_job进程.
使用Ubuntu 12.04.
我正在使用Ubuntu启动并监控bluepill服务本身upstart.我的upstart配置在(/etc/init/bluepill.conf)之下.
description "Start up the bluepill service"
start on runlevel [2]
stop on runlevel [016]
expect fork
exec sudo /home/deploy/.rvm/wrappers/<app_name>/bluepill load /home/deploy/websites/<app_name>/current/config/server/staging/delayed_job.bluepill
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
Run Code Online (Sandbox Code Playgroud)
我也试过expect daemon而不是expect fork.我也试过expect...完全删除线.
当机器启动时,bluepill启动正常.
$ ps aux | grep blue
root 1154 0.6 0.8 206416 17372 ? Sl 21:19 0:00 bluepilld: <app_name>
Run Code Online (Sandbox Code Playgroud)
bluepill过程的PID在这里是1154.但 …
出于解释目的,我将使用SQLite创建一个全新的Rails(3.2.13)项目.
rails new TestApp
cd TestApp/
rake db:create
rails g model Blog name:string description:string
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
这是Blog模型的内容.
class Blog < ActiveRecord::Base
attr_accessible :description, :name
after_create :print_other_name
private
def print_other_name
# Just for example, running a query here.
blog = Blog.first
end
end
Run Code Online (Sandbox Code Playgroud)
然后打开一个rails console.
1.9.3-p125 :001 > blog = Blog.where( name: 'First Blog' ).first_or_create!( description: 'This is the first blog' )
Blog Load (0.2ms) SELECT "blogs".* FROM "blogs" WHERE "blogs"."name" = 'First Blog' LIMIT 1
(0.1ms) …Run Code Online (Sandbox Code Playgroud) activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
我已经使用Flex/Flash Builder多年了.最新版本的Flash Builder(4.7)似乎遇到了很多问题,其中最大的问题是:
IDMXML中的组件.例如,您无法查找组件ID的用法.将光标保持在组件的ID上甚至不会标记 ID的出现.相反,它标记id MXML中实际单词的出现.我正在认真考虑转移到IntelliJ IDEA 12,尤其是在阅读了许多经验丰富的Flex开发人员并对其进行推荐之后.
我尝试过这个.我花了一些时间来讨论IDE的新术语(通过这个文档和JetBrains非常有用的支持人员轻松完成).
我能够使用Adobe Flex 4.6 SDK在IDEA中设置我的(大型)项目并使其编译正常.但我注意到我的AS文件中突出显示了许多"错误",这些错误实际上都是误报.
ActionScript编辑器似乎无法识别MXML中定义的对象.显然,这是IDEA中的已知错误(在此处跟踪).这个bug已存在超过2年!
引用JetBrains支持人员:
我必须承认,突出显示不包含类的ActionScript文件,而是包含在其中,
mxml这<fx:Script source="some_file.as"/>可能是IntelliJ IDEA代码突出显示的唯一薄弱环节.如果您在CDATA中嵌入AS代码<fx:Script/>而不是作为外部*.as文件引用,则错误突出显示将消失.虽然我明白这并不总是需要的.我担心修复程序不会进入12版本,因为版本很快就会发布并且修复程序风险太大.问题的优先级取决于投票和用户反馈.到目前为止,我们只有2票(http://youtrack.jetbrains.com/issue/IDEA-52598),因为修复非常复杂,我们仍然没有实现它认为这是一个罕见的用例.我希望在12.x更新版本中修复它.
我的项目非常庞大,拥有庞大的MXML文件,每个MXML都有更大的AS代码.因此,出于组织目的,我需要在逻辑上将它们拆分为更小的文件.因此,将AS代码与MXML合并是不切实际的.突出显示的错误错误会大大降低代码的可读性.此外,它不允许控制/命令单击 AS代码中的组件ID以快速导航到MXML中的组件定义(顺便说一下,现在在FB 4.7中也被破坏,但在FB 4.6中运行良好).
不幸的是,IDEA中的这个错误对我来说是一个交易破坏者.但我想知道其他Flex开发人员如何能够克服/解决这个看似严重的错误.
对我来说,只有2个人受到这个bug的影响似乎令人难以置信,特别是有这么多Flex开发人员推荐IDEA.也许我做错了什么?
所有Flex开发人员,我将非常感谢您的想法.
这是对RIAStar优秀而详细的回答的回应.但它并没有完全帮助我.让我解释一下为什么以及如何使用<fx:Script source>.我使用的是Flex 4.x,几乎只有Spark组件.
我通常将所有AS代码放在单独的.as文件中,并将其包含在MXML中<fx:Script source>.这个AS代码通常非常繁重,具有许多功能和行为逻辑.很多时候,基于用户操作,甚至MXML中的组件和元素的布局也会通过此AS代码进行修改. …
activerecord ×1
apache-flex ×1
bluepill ×1
cas ×1
json ×1
jsonb ×1
linux ×1
oauth-2.0 ×1
postgresql ×1
saml ×1
ubuntu ×1
upstart ×1