我的Web应用程序有两个角色,User和Admin,每个角色都有不同的jsp页面。现在,我如何为这两个不同的用户映射不同的欢迎文件? USer的Server / webapp / user.jsp admin / webpp / admin.jsp for Admin
让我们说,如果添加欢迎文件为user.jsp / user主页。如何为admin用户在user.jsp中添加条件?我觉得Cookies或过滤器可以提供帮助。
答案 0 :(得分:1)
以下是两种变体。
变体1。您可以使用注释并为每个角色制作不同的文件。
例如,您的管理员有角色"ROLE_ADMIN"
。
只需添加:
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping("/login")
public String getAdmin() {
return "admin";
}
用户也一样:
@PreAuthorize("hasRole('ROLE_USER')")
@RequestMapping("/login")
public String getUser() {
return "user";
}
变体2。如果你想根据角色在.jsp文件中做一些特殊的事情,请使用:
<sec:authorize access="hasRole('ROLE_ADMIN')">
This content will only be visible to users who have
the "ROLE_ADMIN" authority in their list of <tt>GrantedAuthority</tt>s.
</sec:authorize>
要使此标记有效,请在.jsp文件的开头添加:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
有关authorize
代码here
答案 1 :(得分:0)
您可以在控制器中处理它:
@RequestMapping(value="/loginUser")
public String controllerLogin(){
String userType = //code to get user type
//code to get view depending on the userType (like a switch)
return "view";
}
如果您返回没有@RequestBody的字符串,则将其视为视图名称。 这是来自Spring 3.X,我想这就是你正在使用的。