【问题标题】:Servlet Security question about j_security_check, j_username and j_password关于 j_security_check、j_username 和 j_password 的 Servlet 安全问题
【发布时间】:2011-01-29 13:02:15
【问题描述】:

我在我的 Web 应用程序中使用了 jdbcRealm,它运行良好。我也在 web.xml 中定义了所有约束。像 url 模式 /Admin/* 的所有页面一样,只能由管理员访问。我有一个使用标准 j_security_check、j_username 和 j_password 的登录表单。

现在,当我输入 Admin/home.jsf 时,它会正确地重定向我 login.jsf,而当我输入密码时,我会重定向到 home.jsf。这工作正常,但问题来了我直接去 login.jsf 然后输入密码和用户名。这次它再次将我重定向到 login.jsf。有什么方法可以指定成功登录时要转到哪个页面?我需要为不同的角色指定不同的不同页面。对于 Admin,它是 /Admin/home.jsf 对于一般用户它是 /General/home.jsf,因为登录表单在不同类型的用户之间共享。我在哪里指定所有这些内容?

其次,我想在登录表单的末尾有一个记住我的复选框。我该怎么做呢?默认情况下,它被提交给 j_security_check servlet,我无法控制它的执行。请帮忙。这似乎并不难,但看起来我错过了一些东西。

【问题讨论】:

    标签: java


    【解决方案1】:

    我找到了自己问题的答案。这适用于将来在此线程上的任何新手。好的,经过深思熟虑,我找到的解决方案是我制作一个文件夹和一个jsp页面说flag.jsp。接下来,我将访问权限授予所有角色。

    现在,您可能想知道这样做有什么好处?:) 好吧,只要按照它进行操作,您就可以完成了。 :p

    接下来在 web.xml 的欢迎文件中提及该文件的 url。因此,当应用程序启动时,它将转到此 url,并且容器会发现我未经身份验证,从而将我重定向到登录页面。而已。现在,最后一部分是您可以在我们的共享角色 jsp 文件中编写简单的脚本,并根据角色重定向到主页。 例如。如果 httpservletrequest#isUserInRole("Admin") 然后重定向到 "/admin/home.jsf" 等等。

    嗯,这不是那么有效,但重要的是它有效! :)。这个想法今天不小心碰到了我。我想,现在我可以轻松地休息和使用容器管理的安全性了。等待你的cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多