小编And*_*erk的帖子

整合Spring Security OAuth2和Spring Social

我正在使用Spring Boot + Spring Security OAuth2应用程序,我认为该应用程序的灵感来自Dave Syer的示例.应用程序配置为OAuth2授权服务器,单个公共客户端使用资源所有者密码凭据流.成功的令牌配置为JWT.

公共Angular客户端向/ oauth/token发送一个POST请求,其中包含一个包含客户端ID和密码的基本auth头(这是让客户端进行身份验证的最简单方法,即使秘密不是私有的).请求正文包含用户名,密码和授予类型"密码".

除了作为身份验证服务器之外,该应用程序还是用户,团队和组织的RESTful资源服务器.

我正在尝试使用Spring Social添加额外的SSO身份验证流程.我已经将Spring Social配置为通过/ auth/[provider]通过外部提供程序进行身份验证; 但是,以下请求不再正确设置SecurityContext.可能是Spring Security OAuth服务器或客户端覆盖了SecurityContext?

如果我可以在Spring Social流程之后正确设置SecurityContext,我有一个新的TokenGranter,允许新的授权类型"social",它将检查SecurityContextHolder以获得预先认证的用户.

我对SecurityContext的特定问题的解决方案感兴趣(我认为这是Spring OAuth +社交集成的问题),或者是与外部提供程序进行身份验证以及从我们自己的auth服务器获取有效JWT的不同方法.

谢谢!

spring-security single-sign-on spring-social spring-boot spring-security-oauth2

32
推荐指数
2
解决办法
8589
查看次数

具有RequireJS的骨干关系子模型

我正在尝试找到一种方法来使用带有RequireJS的Backbone关系子模型,其中子模型与超级模型位于不同的文件中.

例如:

// app.js
define(function() {
  var app = {};
  var app.ns = {};
  Backbone.Relational.store.addModelScope(app.ns);
});

// Classroom/Person.js
define(["app", "./Student", "./Professor"], function(app) {
  app.ns.Classroom.Person = Backbone.RelationalModel.extend({
    subModelTypes: {
      'Student': 'Classroom.Student'
      'Professor': 'Classroom.Professor'
    },

    alertHello: function() {}
  });

  return app.ns.Classroom.Person;
});

// Classroom/Student.js
define(["require", "app", "./Person"], function(require, app) {
  app.ns.Classroom.Student = require("./Person").extend({
    alertHello: function() {
      alert("Hello, I am student " + this.get("name"));
    }
  });

  return app.ns.Classroom.Student;
});

// Classroom/PersonCollection.js
define(["app", "./Person"], function (app, Person) {
  app.ns.Classroom.PersonCollection = Backbone.Collection.extend({
    model: Person
  }); …
Run Code Online (Sandbox Code Playgroud)

requirejs backbone-relational

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

在服务器运行时使用tinytest测试Meteor客户端

是否可以在服务器运行时使用tinytest测试Meteor客户端?这是我的测试客户端的示例:

Tinytest.add("Add object to a collection", function(test) {
  var people = new Meteor.Collection("people");
  people.insert({"name": "Andrew"}, function(error, id) {
    test.isNull(error);
  });
});
Run Code Online (Sandbox Code Playgroud)

在几分之一秒内,它会通过,但随后会进入"等待"状态.我也很肯定错误不是空的.

Meteor.Error {error: 404, reason: "Method not found", details: undefined}
Run Code Online (Sandbox Code Playgroud)

我知道这种情况正在发生,因为它们不是客户端与之通信的服务器.当我尝试在服务器和客户端上运行此测试时,我继续遇到与客户端相同的问题.有没有办法在服务器运行时测试客户端?

谢谢,安德鲁

meteor

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