一个非常基本的JSP问题,因为我仍然试图理解正确的做事方式。
我正在开发一个Web应用程序,要求用户在工作之前登录。我想要发生的是,只要没有登录的用户试图访问任何页面(登录页面除外),用户就会被重定向到我的登录页面。
我选择的方法只是在每个页面的顶部有一些代码,尝试从会话中获取用户对象,如果它不存在,则重定向到登录(我有存储在会话中的用户对象,用于存在的用户,其中包含权限等其他详细信息。
这是进行身份验证的正确方法吗?或者我应该考虑更多标准方法?
编辑:我决定将这个问题分成两个问题,因为一个问题更多是一个最佳实践问题而另一个问题纯属技术问题。感谢您的回复。
答案 0 :(得分:5)
我不知道你是否有这个替代方案,但使用Java EE声明性安全性可以免除你需要将身份验证代码放入每个JSP。
您的想法是,在您的web.xml中指定安全规则,例如:此网址格式只能由那个角色的用户访问。容器将然后在用户尝试访问受保护资源时提出质疑。您可以指定自己的登录页面,以便在用户受到质疑时使用。
我认为编写自己的登录信息非常有用。
以下是link对如何执行此操作的说明。
答案 1 :(得分:1)
是的,JSP被编译为servlet子类。提前返回的正确方法是简单地“返回”;在您的JSP中。
话虽如此,我认为您应该考虑其他身份验证解决方案。很容易最终忘记在1个JSP的顶部忘记包含,然后你最终意外地允许该页面上的GUEST用户!