小编Anj*_*jan的帖子

CAS与SAML与OAuth2相比

在你没有做任何作业的情况下让我问过于基本的问题之前,我想说我一直在做很多关于这些主题的阅读,但我仍然感到困惑.

我的需求似乎很简单.在我的公司,我们有一堆Ruby on Rails应用程序.我想构建一个所有这些应用程序都应该使用的SSO身份验证服务.

我试着做一些关于如何做到这一点的研究CAS,SAML并且阅读了OAuth2.(我知道OAuth中的"Auth"代表授权,而不是身份验证,但我阅读了足够多的文章,说明如何使用OAuth进行身份验证 - 就是其中之一.)

有人能用简单的语言告诉我这三个是什么吗?他们是替代品(竞争)吗?比较它们甚至是正确的吗?

而且有很多宝石似乎都在说非常相似的东西:

我只想要一个单独的Rails应用程序来处理我的其他Rails应用程序的所有身份验证.

注意:我不想让用户使用他们的Google/Facebook帐户登录.我们的用户已在我们的网站上拥有帐户.我希望他们能够使用该帐户登录一次,并且无需再次登录即可访问我们的所有应用程序.在任何应用中注销都应该在所有应用中签名.

UPDATE

我遇到过这两个OAuth解决方案:

他们似乎在描述与我想要的非常相似的东西.但我还没有找到任何指南/博客文章/教程,展示如何使用SAML/CAS执行此操作.

建议欢迎.

更新2

关于我们用例的更多细节.

我们没有任何现有的SAML架构.主要是我们的用户(直接在我们的网站上注册)将访问我们的所有应用程序.将来,我们可能会有第三方(合作伙伴)公司调用我们的API.我们也可能有来自这些第三方(合作伙伴)公司(在其网站上注册)访问我们的应用程序的用户.

cas ruby-on-rails saml single-sign-on oauth-2.0

50
推荐指数
3
解决办法
2万
查看次数

PostgreSQL JSONB - 具有变量键名的查询条件

我已经阅读了各种JSONB教程:

请考虑以下示例.

一张叫做的桌子plans.它包含以下列:

  1. id (整数,自动递增主键).
  2. name (串).
  3. 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)

postgresql json jsonb

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

Upstart跟踪错误的Bluepill PID

我有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.但 …

linux ubuntu upstart bluepill

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

使用first_or_create时,在after_create回调中,Model查询会自动添加额外条件

出于解释目的,我将使用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

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

使用IntelliJ IDEA 12进行Flex开发

我已经使用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开发人员,我将非常感谢您的想法.

UPDATE

这是对RIAStar优秀而详细的回答的回应.但它并没有完全帮助我.让我解释一下为什么以及如何使用<fx:Script source>.我使用的是Flex 4.x,几乎只有Spark组件.

  • 假设一个全新的Flex项目.主要应用程序是MXML文件.
  • 在这个MXML文件中,假设我有一个注册表单.
  • 在编辑表单时(在每个字段中),假设我必须运行验证并仅在表单完全有效时启用" 提交"按钮.这意味着我需要将更改事件处理程序分配给表单项.事件处理程序是AS代码.
  • 假设有一个用户名字段,需要通过异步调用服务器进行on-type唯一性检查.服务器通信代码也是AS代码.
  • 当然,还有Submit按钮处理程序,它也是AS代码.

我通常将所有AS代码放在单独的.as文件中,并将其包含在MXML中<fx:Script source>.这个AS代码通常非常繁重,具有许多功能和行为逻辑.很多时候,基于用户操作,甚至MXML中的组件和元素的布局也会通过此AS代码进行修改. …

apache-flex intellij-idea flash-builder

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