2012-12-07 49 views
3

我们的WebLogic下运行现有的Java EE应用程序,我想以编程方式验证用户就像用户经由现有的网络登录过程登录。也就是说,最后,我想要有一个有效的会话(cookie),可以返回给调用者,然后返回服务器而不需要重新验证。 (这是为了启用JAX-WS有状态的Web服务调用)。编程登录(认证)在WebLogic中(JAAS)

我们有一个自定义LoginModule的是,当用户通过窗体身份验证登录,最终通过j_security_check调用。我猜想我想要做的是以某种方式让WebLogic代表我调用LoginModule,向我询问凭证,并产生经过验证的会话和有效的主题等(即JAAS的所有优点)。

这是JAAS的东西吗?是否有WebLogic调用?

回答

2

您可以使用HttpServletRequest#login方法做到这一点。这将触发相同种类的登录链,否则在您使用访问受保护的资源时会执行该登录链。

+0

非常感谢您的回复Arjan。不幸的是,在我们的例子中,我们没有使用Servlet 3.0。我们正在使用Servlet 2.5,并且不支持登录(和身份验证)方法。在2.5版本中有这样的东西吗? – psparago

+0

在Servlet 2.5中,不幸的是没有这样的事情。 JBoss和GlassFish都有一个专有机制,但我不知道WebLogic中是否有这种机制。可能值得一试。 –

+0

再次感谢您,Arjan,回复。 – psparago

0

WebLogic安全使用安全服务插件(SSPI)架构,可让您实现安全提供商。容器(如servlet)身份验证由使用SSPI的身份验证提供程序处理。身份验证提供程序包装JAAS登录模块。

编写和配置安全提供程序是extensively documented

如果要实现身份验证提供包装你的登录模块并将其配置为WebLogic域,它会自动为所有容器身份验证的WebLogic安全框架调用。