使用JAAS从webapp1登录到webapp2
我有两个java WebApp,它们运行在同一台jboss服务器上,但在不同的域中:
两个网站的所有内容都使用JAAS loginmodule进行保护。我现在想在app1中创建一个按钮,以转到app2上的页面。正如预测的那样,我是由app2的loginscreen呈现的。我可以成功登录
然而,两个网络应用上的用户实际上是相同的。这意味着对app1有效的用户名/密码在app2上也有效。我想编写一些程序来绕过冗余的安全检查。如果app1想从app2访问页面,我想通过某种方式将j_用户名和j_密码传递给app2,这样app2就可以立即执行安全检查。如果我必须创建额外的控制器或jsp,并在这个过程中使用重定向,这不是问题。如何直接传递j_用户名和j_密码,使登录屏幕不再显示,但仍会执行安全检查
# 1 楼答案
您需要的是使用
JAAS
实现Single sign-on (SSO)
Here你可以找到一个使用LDAP
作为登录模块的教程,但你会明白这一点因为已经配置了
JAAS
部分,所以只需要关注从page 3开始描述的SSO
部分。基本上,我们的想法是配置其中一个模块,使用useSharedState=true
与另一个应用程序共享状态在
LoginModule
中,您将使用以下内容:因为在你的另一个问题中,你提到你正在使用JBoss,因为JBoss版本
5.0
,你可以使用:如果您使用的是WebAuthentication类,那么它将自动为您处理
SSO