使用J2EE进行会话跟踪

时间:2014-03-19 11:01:19

标签: jsp session java-ee servlets

我正在尝试在我的网站上实施会话跟踪。基本上我希望用户能够使用他们的用户名和密码登录我的网站,传递我的网站页面(仅适用于已登录的用户),然后注销。 目前我正在考虑什么是正确的架构来实现这一目标。所以,这样做是否正确:使用一个servlet来验证用户是否被记录,或者是否使用httpSession对象进行登录(有点像这样的示例:http://www.tutorialspoint.com/servlets/servlets-session-tracking.htm)。在登录尝试的情况下,servlet通过调用无状态会话bean(根据我的数据库验证用户名和密码)来验证用户名和密码。

每当用户想要“旅行”到我的网站上仅对已登录用户可见的另一个页面时,该请求必须转到servlet以验证用户是否已登录,然后检索新页面。 / p>

这是正确的方法吗?如果不是,我怎么能做到这一点?

非常感谢。

3 个答案:

答案 0 :(得分:1)

我对术语会话跟踪感到困惑,但我知道您希望允许用户访问受保护的资源。

您需要为安全资源定义角色,身份验证提供程序和映射。然后你可以在web.xml中结合它:

<security-constraint>
         <display-name>SecurityConstraint</display-name>
        <web-resource-collection>
              <web-resource-name>WRCollection</web-resource-name>
             <url-pattern>/*</url-pattern>
     </web-resource-collection>
        <auth-constraint>
              <role-name>TutorialUser</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
   </security-constraint>
  <login-config>
        <auth-method>FORM</auth-method>
     <form-login-config>
              <form-login-page>/loginform.html</form-login-page>
             <form-error-page>/loginerror.html</form-error-page>
      </form-login-config>
 </login-config>
 <security-role>
    <role-name>TutorialUser</role-name>
</security-role>

有关详细信息,请参阅http://docs.oracle.com/cd/E19226-01/820-7627/bncby/index.html。这是JEE的标准方式。

答案 1 :(得分:0)

您可以使用servlet登录您的应用程序。

但是你需要一个过滤器来限制对安全页面的访问。

每个请求都必须通过该过滤器。

答案 2 :(得分:0)

您可以使用Spring Security。它具有您需要的所有功能。 Spring Security为基于J2EE的企业软件应用程序提供全面的安全服务。

框架将根据框架中完成的配置对用户进行身份验证和授权。并会自动在会话中保存用户状态。您不必明确处理会话。