小编a p*_*a p的帖子

使用Devise和OmniAuth-SAML在Rails中设置SAML回调

编辑:附近的附加信息和浓缩问题;)

我正在使用SAML2.0在我正在制作的小应用程序和身份提供程序之间进行集成.

一般来说,我一直在关注Devise页面上的说明,然后是Omniauth-SAML文档.

目前的问题似乎是没有生成回调路径.这是下面的相关代码位; 随时请求其他信息.

应用程序/模型/ user.rb

class User < ActiveRecord::Base
  devise :omniauthable, omniauth_providers: [:saml]

  def from_omniauth(auth_hash)
    puts auth_hash
    new  # Stub for now I guess?
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/ omniauth_callbacks_controller.rb

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def saml
    @user = User.from_omniauth request.env['omniauth.auth']
    if @user.persisted?
      sign_in_and_redirect @user, event: :authentication
      set_flash_message(:notice, :success, kind: 'SAML') if is_navicational_format?
    else
      session['devise.saml_data'] = request.env['omniauth.auth']
      redirect_to permission_denied # this isn't going to work lol
    end
  end

  def failure
    redirect_to root_path
  end
end
Run Code Online (Sandbox Code Playgroud)

来自config/initializers/devise.rb的截断和清理的块

  config.omniauth :saml,
                  idp_cert_fingerprint: 'aa:bb:cc...', # an …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise omniauth saml-2.0 ruby-on-rails-5

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

使用Jackson在JSON响应中反嵌序列化嵌套对象中的字段

这似乎应该是一个相当解决/解决良好的问题,但我没有找到很多指导 - 希望这不是一个骗局.

我的场景基本上是我正在使用看起来像这样的分页JSON响应:

{ 
  "objects": [...],
  "meta": {
    "total": 5000,
    "page": 1,
    "result_pages": 20,
    "links": {
      "prev": null,
      "next": "/api/v3/objects/somequery?page=2"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

显然这是简化的,但希望它得到了重点.

所有我真正关心的是objectsnext字段,但看起来我必须创建一个完整的DTO层次结构才能成功反序列化嵌套字段.

是否有杰克逊注释让我跳过所有这些?如果没有,是否有一组最佳实践,不涉及大量空的类和文件?

java json jackson deserialization

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

将依赖项注入Guice模块

我有一个获取并保存API令牌的模块(简化):

@Singleton
public class KeyHolderModule extends AbstractModule {
    // This doesn't seem to be injected
    private @Inject TokenConnector connector;
    private DateTime keyLastRefreshed;
    private String key;
    private Credentials creds = config.getCreds();

    @Override protected void configure() {
        this.key = connector.getToken(creds);
        this.keyLastRefreshed = DateTime.now();
    }

    @Provides @Named("apiKey") public String getKey() {
        // logic to check key last refreshed and handle generating a new one
        return this.key;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在尝试访问连接器(this.key = connector.getToken(creds);)的行上得到一个空指针错误,因此连接器显然没有正确连接.

我试着创建一个构造和使用@Inject那里,但我通过手动添加这些模块new在我的应用程序引导类的列表,所以这有点出.

很显然,我失去了一些东西-我很可能只是new一个TokenConnector在这种情况下,因为它没有任何依赖关系本身,但不会解决我根本没有把握这里发生了什么.因此,如果您想查看(简化)其他代码片段或此代码的简化部分,请告诉我们.

java dependency-injection guice java-8

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

为 AWS Lambda 中使用的 python 包指定 C(++) 依赖项

我有一个无服务器服务,我希望能够使用saslAWS Lambda 中的 pypi 包。不幸的是,AWS Lambda 环境似乎没有最新版本的 libstdc++.so,这意味着当我们的构建服务器压缩pip install'd sasl 包并调用 lambda 时,会出现预期的错误:

Unable to import module 'handler': /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /var/task/sasl/saslwrapper.so)
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何解决这个问题?有没有办法根据更新的 libstdc++.so.6 在 Amazon Linux 实例上构建这些内容,以便将其与库捆绑在一起?将LD_LIBRARY_PATHenv 变量设置为.并包含最新版本的 libstdc++.so.6 是否有效?任何地方都有这方面的最佳实践吗?

python linker gcc pip aws-lambda

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

clojurescript`和`函数与整数的行为令人困惑

可能只是在这里展示我对lisp(s)的无知,但是我对ClojureScript的and函数有一些奇怪的结果:

(and true false) ; false
(and false true) ; false
(and 1 0)        ; 0
(and 0 1)        ; 1 !?
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?我至少期待对称; 这与位存储truefalse?有关吗?

integer boolean clojurescript

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

在本体中对实体进行排序

我有一个系统可以在本体中建模一些域数据,通常是三元组.

我一直在寻找一种表达多元化和排序的方法,但没有通过谷歌找到任何东西.我的主要用例就像域中的一个实体可以是一个任务列表,(获得杂货,做饭,吃饭,类似的东西),但总的来说,我觉得有能力"重量"你的边缘可能是全面有用.

这是否有可接受的方式?去四元店?中间项目(list - > listitem)与边缘到一个简单和一个域实体?从谓词到权重的谓词?

这是一个例子. 示例布局

rdf owl ontology rdfs

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