我正在运行 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/