Rom*_*nko 5 javascript ajax jsp weblogic web-applications
我正在尝试在ajax应用程序中实现表单身份验证。我的问题是,当会话过期时,我得到302代码,将我重定向到我在web.xml中指定的登录页面(这使刷新整个应用程序到登录页面的一切混乱了)。
我要执行的操作是获取“未经身份验证”(401)代码,然后在弹出窗口中显示登录表单,并在登录成功后继续执行我的操作。
这是正在发生的事情的图片:

和docs http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html
基本上,我想显示弹出窗口而不是重定向到登录页面,然后不重定向到资源,而是以AJAX方式进行更新。据我了解,由于无法避免重定向,因此无法仅在客户端完成(请参见此处:redirect info),我需要在服务器上编写某种逻辑来防止重定向,请参见此处有关在IIS中执行此操作的详细信息: IIS实现
PS到目前为止:http : //www.oracle.com/technetwork/articles/entarch/session-lifecycle-096133.html看起来是实现它的最有前途的方法。该类已弃用,但我找不到新的类,并认为这是为Weblogic做到这一点的唯一方法。
这不是一个简单的方法,但仍然有效
您的页面中有一个由用户填写的表单。
用户单击提交按钮。
ajax 请求被发送到服务器。
服务器端实现可以检查会话是否存在。因此您可以发送响应代码 401..(response.setStatus());
可以使用 ajax 在客户端检查此 401 --- xhr.status
如果响应是 401,您可以显示登录表单并隐藏当前表单。使用js和css。
用户填写登录详细信息并单击提交。
您可以对该登录请求的状态执行相同的服务器端检查和客户端检查。
如果登录成功,那么您可以使用ajax或js提交第一个表单。
| 归档时间: | 
 | 
| 查看次数: | 1954 次 | 
| 最近记录: |