JAAS如何加载实现LoginModule的类?

时间:2014-01-22 18:19:49

标签: java spring jaas

这是通过Reflection或ServiceLoader完成的吗?我问,因为我有一个自定义的LoginModule应该使用Spring,但是尽管有@Autowired,相应的bean没有正确填充(在上下文中定义了bean,这显然在类路径上) 。这让我认为LoginModule实现类是使用反射加载的,因此完全绕过了Spring。是这样的吗?如果可以的话,我还能以某种方式使用Spring吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:是的,这是使用反射来完成的,它有效地绕过Spring并为你提供了一个没有@Autowired的实例化对象。

但是,您可以使用LoginModule initialize()方法手动初始化Bean。 LoginModule类应该实现org.springframework.context.ApplicationContextAware,您必须拥有private static ApplicationContext context。这样就会为你注入context,你可以从那里加载bean。

远非最佳,但它似乎正在做的伎俩。如果有人有更好的解决方案,请分享,因为我很乐意听到它!