Spring security 仅使用Spring安全性(或)Spring进行授权

Spring security 仅使用Spring安全性(或)Spring进行授权,spring-security,authorization,user-permissions,aspect,Spring Security,Authorization,User Permissions,Aspect,我有一个关于授权和spring安全性的问题。为了在我的一个服务(在面向服务的体系结构环境下)中实现授权检查,我试图看看是否可以使用Spring安全性。在阅读Spring安全文档时,我了解到Spring安全在内部使用Spring的AOP Ref:您可以选择使用AspectJ或Spring AOP执行方法授权,也可以选择使用过滤器执行web请求授权。您可以同时使用零、一、二或三种方法。主流使用模式是执行一些web请求授权,再加上服务层上的一些SpringAOP方法调用授权 我们已经在服务实现中使用了

我有一个关于授权和spring安全性的问题。为了在我的一个服务(在面向服务的体系结构环境下)中实现授权检查,我试图看看是否可以使用Spring安全性。在阅读Spring安全文档时,我了解到Spring安全在内部使用Spring的AOP

Ref:您可以选择使用AspectJ或Spring AOP执行方法授权,也可以选择使用过滤器执行web请求授权。您可以同时使用零、一、二或三种方法。主流使用模式是执行一些web请求授权,再加上服务层上的一些SpringAOP方法调用授权

我们已经在服务实现中使用了SpringAOP。在我的例子中,将到达我的RESTful服务的请求将携带一个定制的令牌对象,应该对该对象进行处理以执行授权检查

基于此,我想了解我是否可以简单地使用Spring并创建一个方面来捕获入站请求,提取并处理相关(定制)令牌,并根据结果继续/拒绝请求?考虑到通信通道已经使用HTTPS进行了安全保护,我是否需要spring安全性

谢谢


SGSI

对于类似的情况,我们很久以前做了以下工作:

  • 使用HTTP筛选器从每个请求的HTTP头中提取令牌
  • 将提取的头存储到线程上下文中
  • 添加了一个关于服务方法调用的方面,以检查令牌的线程上下文
  • 这个策略对我们很有效。在过去的许多年中,我一直在使用SpringSecurity,因为它有一个针对此类问题的更经过测试和更全面的实现


    如果您希望编写自己的令牌传递实现,可以检查Spring安全类的源代码,该类提供了在执行线程上传递安全信息的多种方式。

    但是,如果-(1)我将处理令牌,并做出通过/不通过的决定(2)Spring Security将创建一个过滤器来处理令牌,我无论如何都可以使用Spring特性来完成这项工作。请注意,身份验证已经到位,对于授权,我只需处理我们的自定义令牌,并在它到达doPost()之前做出决定。我完全同意,Spring Security可能不会为您描述的用例提供任何额外的好处。我同意您的看法,您可以使用方面来强制执行您所描述的授权需求。我提到Spring安全类只是为了实现它,您可能会发现它在应用程序层之间传递安全令牌时很有用。