2

我有与授权和弹簧安全有关的问题。为了在我的一项服务中实现授权检查(在面向服务的架构环境下),我试图查看是否可以使用 Spring-Security。在浏览 Spring Security 文档时,我在这里读到spring security 在内部使用 spring 的 AOP。

参考您可以选择使用 AspectJ 或 Spring AOP 执行方法授权,也可以选择使用过滤器执行 Web 请求授权。您可以同时使用零个、一个、两个或三个这些方法。主流的使用模式是做一些web请求授权,再加上service层的一些Spring AOP方法调用授权。

我们已经在我们的服务实现中使用了 Spring AOP。在我的例子中,将进入我的 RESTful 服务的请求将携带一个自定义构建的令牌对象,应该对其进行处理以执行授权检查。

基于此,我想了解我是否可以简单地使用 Spring 并创建一个 Aspect 来捕获入站请求,提取和处理关联的(自定义构建的)令牌并根据结果继续/拒绝请求?鉴于通信通道已使用 HTTPS 保护,我是否需要 spring-security?

谢谢,

SGSI

4

1 回答 1

0

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

  1. 使用 HTTP 过滤器从每个请求的 HTTP 标头中提取令牌。
  2. 将提取的标头存储到线程上下文。
  3. 添加了围绕服务方法调用的一个方面,以检查令牌的线程上下文。

这个策略对我们很有效。在过去的很多年里,我一直在使用 Spring Security,因为它对这些问题有更经过测试和更全面的实现。

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

于 2014-02-12T14:32:45.680 回答