相关疑难解决方法(0)

注销后阻止用户查看以前访问过的安全页面

我要求最终用户在注销/注销后不能返回受限页面.但目前最终用户可以通过浏览器后退按钮,访问浏览器历史记录或甚至通过在浏览器的地址栏中重新输入URL来实现.

基本上,我希望最终用户在注销后不能以任何方式访问受限制的页面.我怎样才能做到最好?我可以用JavaScript禁用后退按钮吗?

jsp servlets back-button logout browser-history

99
推荐指数
2
解决办法
6万
查看次数

如何处理数据库中用户的身份验证/授权?

目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发一个Web项目.我有一个很大的问题,如何处理数据库中用户的会话管理和身份验证/授权.

我想要的结构如下:只有登录用户才能创建事件,每个人都可以看到创建的事件.

  • create.xhtml - >仅适用于已登录的用户.
  • events.xhtml - >为大家公开.

我计划的基本结构是:

  • 检查页面是否需要登录用户(例如create.xhtml)
  • 如果是,请检查用户是否已登录
  • 如果用户未登录,请转到 login.xhtml
  • 如果成功登录,请返回请求的页面
  • 除非用户单击"注销"按钮,否则请保留"用户已登录"信息.(我想@SessionScoped进入比赛)

问题是:

  1. 这种不那么复杂的方法是什么?
  2. 我应该在哪里使用@SessionScoped注释?在Create.javaLoginManager.java
  3. 对于我的问题,Spring安全性看起来很复杂,我真的需要它吗?如果是的话,你能解释一下实现如何与JSF 2.0和Mongo DB一起工作吗?

database authentication jsf authorization java-ee

28
推荐指数
1
解决办法
3万
查看次数

使用Java中的过滤器验证用户名,密码(与数据库联系)

以下是使用过滤器的Java代码片段,如果用户名和密码也正确,则每次都会显示错误页面.请帮帮我,我对这个概念知之甚少.

String sql="select * from reg where username='"+user+"' and pass='"+pwd+"'";
rs=st.executeQuery(sql);
if(rs.next())
{
    chain.doFilter(request,response);
}
else
    sc.getRequestDispatcher("/error.html").forward(request,response);
Run Code Online (Sandbox Code Playgroud)

authentication jsp servlets login servlet-filters

10
推荐指数
2
解决办法
2万
查看次数

仅限JSP/Servlet访问特定用户

我正在开发一个网络应用程序.我希望能够让一些朋友看到它,但不会有其他人偶然发现这个网址.我要打开一个登陆页面,然后是一个简单的密码框.输入正确的密码后,我只需将其记录在会话中,并像往常一样公开网站,以便其他时间保持浏览器打开状态.

有没有标准的方法来做到这一点?我将为我的webapp添加额外的代码以支持这一点,我不确定是否已经有一种内置的方法(我正在使用java servlet).

谢谢

jsp servlets security-constraint

4
推荐指数
1
解决办法
3889
查看次数

在登录前将他们正在查看的内容重定向回实际页面

如果我的用户被重定向到登录页面,如何使其在登录后被重定向到-original-destination页面(他们首次点击的页面)?

java jsp servlets

4
推荐指数
1
解决办法
2676
查看次数

java会话管理

我正在使用一个小型webapp来获得乐趣,目前只使用Java Servlet.我有两个页面,test1和test2.目前我在test1中创建一个新会话,如下所示:

    HttpSession session = request.getSession(true);
    if (session.isNew() == false) {
        session.invalidate();
        session = request.getSession (true);
    }
Run Code Online (Sandbox Code Playgroud)

在test2中,我正在检索会话,如下所示:

    HttpSession session = request.getSession(false);
    if (session == null) {
        throw new ServletException ("No session.");
    }
Run Code Online (Sandbox Code Playgroud)

所以问题是如果我先去test2,我总是得到一个有效的会话,因为浏览器会创建一个.我想限制从test1到test2的流程,所以我必须先进入test1.我的计划是最终创建一个创建会话的登录页面,但我在这里看到的问题仍然存在.

我该怎么处理?我希望任何想法都不包括第三方库.我这样做是为了学习练习.

谢谢!

java servlets java-ee

3
推荐指数
1
解决办法
7162
查看次数