编辑:附近的附加信息和浓缩问题;)
我正在使用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) 这似乎应该是一个相当解决/解决良好的问题,但我没有找到很多指导 - 希望这不是一个骗局.
我的场景基本上是我正在使用看起来像这样的分页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)
显然这是简化的,但希望它得到了重点.
所有我真正关心的是objects和next字段,但看起来我必须创建一个完整的DTO层次结构才能成功反序列化嵌套字段.
是否有杰克逊注释让我跳过所有这些?如果没有,是否有一组最佳实践,不涉及大量空的类和文件?
我有一个获取并保存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在这种情况下,因为它没有任何依赖关系本身,但不会解决我根本没有把握这里发生了什么.因此,如果您想查看(简化)其他代码片段或此代码的简化部分,请告诉我们.
我有一个无服务器服务,我希望能够使用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 是否有效?任何地方都有这方面的最佳实践吗?
可能只是在这里展示我对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)
这里发生了什么?我至少期待对称; 这与位存储true和false?有关吗?
我有一个系统可以在本体中建模一些域数据,通常是三元组.
我一直在寻找一种表达多元化和排序的方法,但没有通过谷歌找到任何东西.我的主要用例就像域中的一个实体可以是一个任务列表,(获得杂货,做饭,吃饭,类似的东西),但总的来说,我觉得有能力"重量"你的边缘可能是全面有用.
这是否有可接受的方式?去四元店?中间项目(list - > listitem)与边缘到一个简单和一个域实体?从谓词到权重的谓词?
这是一个例子.
