如何在j_security_check登录后重定向到url

时间:2015-11-04 13:14:25

标签: java-ee j-security-check

我使用j_security_check来验证我的Java EE Web应用程序。

我有两组;用户和管理员。这两个组在weg页面中都有自己的文件夹;用户有“/ secure”,admin有“/ admin”。在使用j_security_check对用户进行身份验证后,我希望根据他们的组重定向到其关联的Web文件夹。现在他们只是留在登录页面。我的应用程序的身份验证部分工作正常,如果我以用户身份登录,我可以访问/安全但不是/ admin,反之亦然。

这可能吗?怎么样?我无法在网上找到任何信息或解决方案。

编辑:也许是解决方案的一些方便信息,我也在我的应用程序中使用JSF。但我不使用任何JSF登录。登录表单是带有j_security_check内容的纯HTML。

编辑2:我的主Web文件夹的根文件是登录页面。

3 个答案:

答案 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