2013-03-30 117 views
0

我正在尝试向以前构建的Web应用程序添加新功能。该应用程序使用j_security_check。我想使用其他单点登录服务登录到应用程序。最佳做法是什么?通过传递J_security_check

P.S.我看不到j_security_check在哪里检查用户名和密码。任何帮助,将不胜感激。

编辑:实际上我想要做的就是使用另一个sso服务来登录到j_security_check。另一个SSO系统是另一个我们的应用程序。用户登录到该应用程序,并且该应用程序向我发送令牌。在它发布令牌之后,我可以获得登录的用户ID。

谢谢!

+0

可能重复[?我在哪里可以找到 “J□\ _security \ _check”(http://stackoverflow.com/questions/ 10723138 /哪里可以找到j安全检查) –

+0

*“最佳做法是什么?”* - 没有使用“另一个”SSO系统的最佳做法。您选择符合您要求的SSO系统,然后执行它。如果你真的在寻求建议,那不是问题所在。 –

回答

1

j_security_checkRealm是一种方式,web容器或tomcat检查登录本身! 如果您在META-INF文件中检查配置文件tomcatcontext.xml中的server.xml,可以看到Realm标签,其中显示了Realm如何检查登录功能。

在应用程序中,您不能使用Realm多次。如果你想实现另一个单一登录,你应该自己实现它。但我不知道你为什么要实现两个单一登录!这真的很奇怪!

我认为最好的办法是把出头的session和检查,以确保用户在登录。

正如你说,有太多的网页和处理这类项目真的很难,我建议您使用Front Controller模式或Facade设计模式。您只能在Front Controller中查看会话。 你可以在这里阅读更多:

http://en.wikipedia.org/wiki/Front_Controller_pattern

http://java.dzone.com/articles/understanding-front-controller http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns_front_controller.htm

+0

首先感谢您的回答。系统是这样的:用户登录到另一个Web应用程序。这个应用程序给我发一个令牌。我可以通过使用此令牌和Web服务来获取用户信息。获取令牌后,我想让用户登录到j_security_check。在应用程序中有数百页。在每个页面中检查登录用户的上下文。如果我不这样做,我必须改变每一页。我试图找出需要较少负担的解决方案。 –

+1

用户应该登录到应用程序和您的应用程序之间的关系是什么?他们都在同一个网络应用程序? – boomz

+0

不,他们完全分开。它是一项全国范围的服务,使公民能够使用其国家身份证号登录一些政府服务。登录后我的申请可以检索一些其他公民信息。这使我们使用并始终更新关于用户的信息数据库。如果我们能够管理,我们不需要从头开始创建用户数据库。 –