在Spring MVC中导航HTML页面时,有没有办法检查用户会话?

时间:2017-03-04 05:17:15

标签: java angularjs spring-mvc login spring-security

我有两个项目 - 一个用于Java Spring Services,另一个用于Web UI。

我已准备好登录功能,因为我的观点位于" html"扩展名保存在完全不同的文件夹中

如何在导航HTML页面时检查用户安全会话 /身份验证,并让用户返回登录页面,以防会话过期或不成功会议?

enter image description here

我不想遵循的方法:

  • 除非没有更好的方法,否则我不想将我的网址与会话ID进行聚类

  • 我不想使用Spring Security,我的观点是设计的 HTML和AngularJS。

  • 再次使用Cookie并不是一种安全的方法,因为任何人都可以获得所有权利 来自前端的饼干。

2 个答案:

答案 0 :(得分:0)

在成功进行用户身份验证后,您需要发送带有一些必需令牌的Cookie。然后创建一个像/userAuth这样的服务,浏览器会自动将您的cookie(无论是sessionID,令牌等等)信息附加到您的身上http请求标头。根据请求标头数据,您需要验证用户访问权限或授权。 如果用户未被授权,则发送401作为状态,并在您的angular $ http失败方法上,您需要发出/广播注销事件以重定向到适当的页面。

答案 1 :(得分:0)

在Spring方面,您需要设置一个HandlerInterceptorAdapter来检查登录状态并将错误代码返回给html端。

可以将Spring handlerInterceptorAdapter配置为拦截所有控制器,hand具有preHeandle方法,该方法可用于检查用户会话或在应用程序无会话时登录用户。

然后你的所有WS都没有数据。

这里的文档

https://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-handlermapping-interceptor

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.html

如果你想保护页面,你也可以在角度方面做一些工作,以避免在页面WS返回正确的错误代码(用户未经授权)时进行可视化。或者您可以检查令牌或coockie。

或者您已将模板及其访问权限置于Spring Control下 以拦截器在服务之前运行的方式。