0

有一个基于 Swing 的多层 Java 应用程序,每个模块都有其后端和前端。

现在我们想使用 Spring Security 添加安全性。我们决定不使用 AspectJ,因为它的开销很大。

是否有可能以某种方式将 Spring 方法调用授权注入 Java 安全管理器,以便后端中的每个方法调用都被 Spring Security 的基于注释的模型拦截(或委托给)?

笔记:

该应用程序包含大量包,并且使用 new 运算符或通过反射技术实例化对象。不可能修改所有实例化并将所有对象更改为 Spring bean。无论对象是如何构造的,Java 安全管理器都会拦截所有方法调用。这就是我们需要以某种方式向 Java 安全管理器注入 Spring Security Method 授权的原因。

4

1 回答 1

1

使用 Spring AOP 不需要 AspectJ,因此只要您使用 Spring 配置应用程序,使用本机 JDK 支持应该没有问题(无论如何它是默认设置)。我不确定您是否尝试过它并且它对您不起作用,因此问题中的一些更具体的信息可能会有所帮助。

Java 安全管理器可能是一种不必要的干扰,但如果你能更详细地解释你的意图,它可能也会有所帮助。

而且,顺便说一句,我不确定你提到的 AspectJ 的开销是多少,但如果你认为这很重要,我会建议首先进行测试,因为对于大多数应用程序来说,它在运行时肯定不是很大的差异。它甚至可以比其他方法更快。

于 2012-11-18T21:50:38.867 回答