我正在使用Spring作为我的网络应用。我使用了几个SimpleFormControllers。我使用以下命令在第一个SimpleFormController中为登录页面创建了一个会话:
HttpSession session = request.getSession(true);
如何使用Sessions保护其他SimpleFormControllers,即如果没有插入用户,则不会加载其他控制器。
谢谢
答案 0 :(得分:6)
您可能想要使用Spring Security。 它很灵活,允许基于角色的限制。
没有它,您将需要手动检入每个控制器是否用户登录。或者你必须通过向webapp添加过滤器来“重新发明”安全框架。
如果您只想保护获取会话的操作,则需要编写一个包装原始请求的过滤器并覆盖getSession方法。在那里,您可以使用原始请求getSession()
检查登录数据。
BTW,getSession()
相当于getSession(true)
答案 1 :(得分:0)
为了保护Controller不受预期会话之外的访问,您可能希望将所需的范围规则与此明确编写的指南进行比较。 How to get Session Object In Spring MVC
作者给出了一个创建使用@Scope注释的Controller(“会话”)
的示例