我使用j_security_check来验证我的Java EE Web应用程序。
我有两组;用户和管理员。这两个组在weg页面中都有自己的文件夹;用户有“/ secure”,admin有“/ admin”。在使用j_security_check对用户进行身份验证后,我希望根据他们的组重定向到其关联的Web文件夹。现在他们只是留在登录页面。我的应用程序的身份验证部分工作正常,如果我以用户身份登录,我可以访问/安全但不是/ admin,反之亦然。
这可能吗?怎么样?我无法在网上找到任何信息或解决方案。
编辑:也许是解决方案的一些方便信息,我也在我的应用程序中使用JSF。但我不使用任何JSF登录。登录表单是带有j_security_check内容的纯HTML。
编辑2:我的主Web文件夹的根文件是登录页面。
答案 0 :(得分:2)
您可以拥有一个仅用于处理不同角色之间的公共安全/登录路径(@WebServlet)的Web Servlet,并根据当前经过身份验证的用户角色重定向到该页面。您可以使用HttpRequest.isUserInRole()方法,然后将用户重定向到所需的页面(HttpResponse.sendRedirect())
答案 1 :(得分:0)
对于想知道我是如何解决它的人,我忘了在web.xml中指定角色,如下所示:
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>skipper</role-name>
</security-role>
感谢@Franck花时间通过聊天来解决这个问题!
答案 2 :(得分:0)
怎么样:
使用下一个内容创建redirect.jsp
文件:
<%response.sendRedirect(request.getContextPath() + "/redirect");%>
然后将redirect.jsp
作为web.xml
中的欢迎文件:
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
最后一步是创建一个检查角色并重定向的servlet