java - 条件认证 : How to conditionally display login on page servlet

标签 java tomcat servlets authorization

我正在运行 Tomcat 8。目前我有一些页面用户总是需要登录才能看到,而一些页面用户永远不需要登录才能看到。我有这两种情况。

但现在我需要制作一个用户有时必须登录才能看到的页面(基于所请求内容的数据/配置)。

考虑到这一点,我不能只将 servlet 端点放入 web.xml 网络资源集合中,那样做是行不通的。

我已经尝试使用 j_securtiy_check 的标准连接从我的 servlet 返回登录 View ,但是当服务返回时,它看起来不像登录有效。

最佳答案

为了解决我的问题,这是我所做的。

在我的 servlet 中,我获取我需要呈现的对象的数据,如果该对象声明用户需要经过身份验证才能查看,我会使用 request.getRemoteUser() 检查身份验证。

如果没有找到用户,我将重定向到一个带有新 servlet 的安全 url。该网址将在网址中包含一个 ?return=myurl 。在这种情况下,登录页面显示,新的 servlet 看到返回 url 并重定向回原始页面。

原始页面现在再次进行用户查找,但这次用户已登录。

这不是理想的解决方案,但它确实有效。

关于java - 条件认证 : How to conditionally display login on page servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784513/

相关文章:

java - doGet 和 doPost 的 HttpServlet 契约

java - 通过 Ajax 从 Google Web Toolkit 加载 HTML 模板?

java - 多个showMessageDialog可以断swing吗?

java - 如何在 Windows 服务器上为 Tomcat 配置代理

java - 如何在 Ubuntu 上创建 Servlet 和/或 JSP 项目?

java - 从数据库提供文件时指定内容长度

java - 如何在 Java 中更改 mp3 的标题

java从文件夹加载文件,但项目是一个模块

java - 如何在运行 Tomcat 时获取包版本?

java - Httpclient 使用 multipart/form-data 进行 POST