春季会议管理

时间:2010-12-28 05:50:36

标签: java spring-mvc

我正在使用Spring作为我的网络应用。我使用了几个SimpleFormControllers。我使用以下命令在第一个SimpleFormController中为登录页面创建了一个会话:

HttpSession session = request.getSession(true);

如何使用Sessions保护其他SimpleFormControllers,即如果没有插入用户,则不会加载其他控制器。

谢谢

2 个答案:

答案 0 :(得分:6)

您可能想要使用Spring Security。 它很灵活,允许基于角色的限制。

没有它,您将需要手动检入每个控制器是否用户登录。或者你必须通过向webapp添加过滤器来“重新发明”安全框架。

如果您只想保护获取会话的操作,则需要编写一个包装原始请求的过滤器并覆盖getSession方法。在那里,您可以使用原始请求getSession()检查登录数据。

BTW,getSession()相当于getSession(true)

答案 1 :(得分:0)

为了保护Controller不受预期会话之外的访问,您可能希望将所需的范围规则与此明确编写的指南进行比较。 How to get Session Object In Spring MVC

作者给出了一个创建使用@Scope注释的Controller(“会话”)

的示例