使用本地策略的CORS将客户端应用程序authentication为REST API

问题: 只使用本地身份validation策略为客户端应用程序提供安全的API。 红色箭头是知识差距的一部分。 语境: 即— client.example.com正在向api.example.com/login一个POST ,成功的client.example.com可以访问api.example.com/secret等GET服务。 一个主意! 在API前面实现混合授权types的OAuth 2.0的实现。 为什么要混合 它不会是一个Implicit Grant Flow即Client-Side Web Applications Flow因为没有redirect到API服务器也授予访问令牌。 (即) “访问您的数据是否可以?” 它不会是Resource Owner Password Flow因为客户端ID和客户端密钥与请求一起传递,所以假定客户端应用程序是服务器端。 好的…那么两者有什么关系呢? 如果我们在客户端应用程序的页面加载中使用CRSF令牌,并将其与用户凭证一起POST,OAuth 2.0身份validation端点将交换访问令牌? 您将在成功login后使用访问令牌和CRSF令牌对每个后续请求进行身份validation。 一个好的Node.js OAuth 2.0库我发现: https://github.com/ammmir/node-oauth2-provider 帮我! 我无法find解决此问题的validation措施的工作示例! 把我指向正确的方向? 最终,这里的目标是使用CORS和本地策略(即用户名和密码)来validation客户端应用程序到REST API,即使上述约定是不可能的。 容纳赏金: 这是一个客户端应用程序,所以让我们保持时尚。 我正在寻找一个使用上面的API / Auth服务器的Node.js OAuth 2.0种子和前端框架(如Angular.js或Backbone.js)进行请求的工作示例。 这个例子应该与上面描述的上下文匹配。

我可以做什么我的scala代码,所以它会更快地编译?

我有一个大的Scala代码库。 ( https://opensource.ncsa.illinois.edu/confluence/display/DFDL/Daffodil%3A+Open+Source+DFDL ) 这就像70K行的scala代码。 我们在斯卡拉2.11.7 开发变得越来越困难,因为编译 – 编辑 – 编译 – testing – debugging周期对于小的变化来说太长了。 增量重新编译时间可以是一分钟,这是没有优化打开。 有时候更长。 这是没有编辑到文件中的很多更改。 有时候,一个非常小的变化会导致巨大的重新编译。 所以我的问题:我可以通过组织代码的方式来做什么,这将提高编译时间? 例如,将代码分解成更小的文件? 这会有帮助吗? 比如,更小的图书馆? 例如,避免使用implicits? (我们有很less) 例如,避免使用特质? (我们有吨) 例如,避免大量的import? (我们有很多 – 包的边界在这一点上是非常混乱的) 还是我真的没有什么可以做的呢? 我觉得这个非常长的汇编在某种程度上是由于依赖关系导致了大量的重新编译,而我正在考虑如何减less错误的依赖关系……但这只是一个理论 我希望别人能够阐明一些我们可能做的事情,这会提高编译速度,从而增加更改。

Unity 2.0和处理IDisposabletypes(尤其是使用PerThreadLifetimeManager)

我知道类似的问题被问了几次(例如: 这里 , 这里 , 这里和这里 ),但它是以前版本的Unity,答案取决于使用的LifetimeManager类。 文档说: Unity使用从LifetimeManager基类inheritance的特定types(统称为生存期pipe理器)来控制它如何存储对对象实例的引用以及容器如何处理这些实例。 好吧,听起来不错,所以我决定在生命周期pipe理中检查构build的实现。 我的结论是: TransientLifetimeManager – 不处理处理。 容器只能parsing实例,并不会跟踪它。 调用代码负责处理实例。 ContainerControlledLifetimeManager – configuration生命期pipe理器时的实例(=configuration容器时)。 提供hiearchy中所有容器共享的单例实例。 HierarchicalLifetimeManager – 从ContainerControlledLifetimeManager派生行为。 它在hiearchy(子容器)中为每个容器提供“单例”实例。 ExternallyControlledLifetimeManager – 不处理处理。 正确的行为,因为容器不是实例的所有者。 PerResolveLifetimeManager – 不处理处理。 它通常与TransientLifetimeManager相同,但它允许在parsing整个对象图时重用dependency injection的实例。 PerThreadLifetimeManager – 不处理MSDN中描述的处理。 谁负责处理? 内置PerThreadLifetimeManager是: public class PerThreadLifetimeManager : LifetimeManager { private readonly Guid key = Guid.NewGuid(); [ThreadStatic] private static Dictionary<Guid, object> […]

neo4j与mysql相比的性能(怎么能改进?)

这是一个后续行动, 无法在行动手册中重现/validationgraphics数据库和neo4j中的性能声明 。 我已经更新了设置和testing,不想太多改变原来的问题。 整个故事(包括脚本等)在https://baach.de/Members/jhb/neo4j-performance-compared-to-mysql 简短的版本:当试图validation在“图数据库”书中的性能声明时,我得出以下结果(查询包含n个人的随机数据集,每个数据集有50个朋友): My results for 100k people depth neo4j mysql python 1 0.010 0.000 0.000 2 0.018 0.001 0.000 3 0.538 0.072 0.009 4 22.544 3.600 0.330 5 1269.942 180.143 0.758 “*”:仅限单次运行 My results for 1 million people depth neo4j mysql python 1 0.010 0.000 0.000 2 0.018 0.002 0.000 3 […]

我怎样才能停止索引intellij想法?

如果没有“排除”文件夹,我怎么能停止索引intellij想法开始? 非常烦人的是,它在启动时开始索引,而不允许你debugging一个testing用例,等待索引完成。

为什么GCC -O3在filter迭代器上通过std :: deque产生无限的std :: distance?

经过很多的痛苦和苦难之后,我跟踪了一些非常奇怪的行为,当std::distance在给定范围的boost::filter_iterator时, std::distance永远不会返回std::deque 。 看来这个问题对于使用-O3优化的GCC(6.1+)来说是独一无二的。 这是一个certificate违规行为的例子: #include <string> #include <deque> #include <iterator> #include <iostream> #include <boost/iterator/filter_iterator.hpp> struct Foo { std::string bar, s = ""; char a = '\0'; }; int main() { const std::deque<Foo> foos(14, {""}); const std::string test {}; const auto p = [test] (const auto& foo) { return foo.bar == test; }; using boost::make_filter_iterator; […]

.Net规则引擎

我正在从一个规则引擎中受益的项目。 我已经考虑过使用Windows工作stream引擎,但我想知道还有什么。 我的项目花费了大部分预算。 所以我需要build议,适度定价(在<$ 1,000的范围内)。 我看到了InRule ,但他们没有发布价格(我可以看到)。 所以我猜这是“如果你不得不问你买不起”的那种产品。 我看到这篇文章: 在.NET中寻找简单的规则引擎库 但是它很老,专注于开源。 那么,那里有没有适当的.Net规则引擎?

自定义animation从一个UICollectionViewLayout切换到另一个?

作为一个testing,我做了一个布局,以垂直线显示单元格,另一个以水平布局显示单元格。 当我调用[collectionView setCollectionViewLayout:layout animated:YES]; 它在两个位置之间非常干净地animation。 现在我想要做的是在最终到达目的地之前,所有的视图都进行了一些旋转,扭曲和旋转(可能使用CAKeyframeAnimations),但是我找不到一个合适的位置来吸引它。 我尝试了UICollectionViewLayoutAttributes包含一个animation属性,然后设置这些animation重写我使用的UICollectionViewCell applyLayoutAttributes:方法。 这工作…除了布局过渡完成后才出现。 如果我想使用这个,我必须有布局不改变对象的当前位置,只有在它达到这个应用属性代码的一部分,这似乎很多工作… … – 或者,我可以UICollectionView并覆盖setCollectionViewLayout:animated: UICollectionView但是这也看起来像是很多状态来保持布局之间。 这两种select都不是正确的,因为有一种简单的方法可以在布局中增加/删除单元格。 我觉得应该有一些类似的布局之间的animation挂钩。 有谁知道最好的方法来获得我期望完成的?

Rails升级到angular度2

我想升级我现有的Rails和Angular 1.x应用程序。 我正在按照ng升级文档 ,看到有很多依赖包括systemjs , 打字稿 , tsd和一些其他的JavaScript库。 理想情况下,将有一个angular度2的gem,将有所有的依赖,但我无法find。 接下来,我查找每个依赖关系的gem,但没有一个tsd。 切换到自定义构build策略是否有意义,这样我可以使用npm进行JavaScript包pipe理? 我读这篇文章,build议大家,但我喜欢资产pipe道的便利。 任何人都可以指向成功使用rails项目ng-upgrade的例子吗? 它是否使用像gulp一样的定制构build解决scheme还是使用资产pipe道?

如何避免代码重复实现常量和非常量迭代器?

我正在实现一个类似STL的接口的自定义容器。 我必须提供一个常规的迭代器和一个常量迭代器。 迭代器的两个版本的大部分代码是相同的。 我怎样才能避免这种重复? 例如,我的容器类是Foo ,我正在实现FooIterator和FooConstIterator 。 这两个迭代器都必须提供像operator++()这样的方法,它们是相同的。 我的问题类似于如何删除类似的const和非const成员函数之间的代码重复? ,但是这个答案是特定于const和非const方法的,特别是访问器。 我不明白这是如何推广到迭代器的问题。 我应该让FooIterator从FooIterator派生,并用额外的非const方法扩展吗? 这要么导致虚拟方法或方法隐藏,这在这里看起来不合适。 也许FooIterator应该包含一个FooConstIterator 。 虽然这种方法确实减less了重复实施,但似乎重新引入了很多样板方法的定义。 是否有巧妙的模板技术从一个单一的定义生成两个迭代器? 或者也许有一种方式 – 不寒而栗 – 使用预处理器来消除这些几乎相同的类。 我试着看看我的本地STL实现,看看它是如何处理这个。 有这么多的帮助类,我有困难的devise,但它看起来像function只是重复。 在以前的项目中,我的自定义容器是build立在标准STL容器之上的,所以我不必提供自己的迭代器。 在这种情况下,这不是一个选项。