【发布时间】:2016-07-07 07:37:56
【问题描述】:
我一直在研究 Spring Security 的 REST API 问题。在开始实施之前,我想在 github 上获得专家建议或一些示例项目,如果有的话。
我的应用程序将基于 REST API。并且将被两个客户端访问:
- 手机
- 网络
如果我使用自定义登录页面创建 REST API,那么它将始终被重定向到 Web(根据我的理解)。什么时候开始用手机消费?
.formLogin()
.defaultSuccessUrl("/ui/index.html#/app/dashboard")
.loginProcessingUrl("/api/upuser/verifyUser")
.usernameParameter("username")
.passwordParameter("password")
.successHandler(new AjaxAuthenticationSuccessHandler(new SavedRequestAwareAuthenticationSuccessHandler()))
.loginPage("/ui/index.html#/access/signin")
我认为从上面的代码中可以很明显地看出,这个应用程序将从两个不同的位置访问:
- localhost:8080/api/ 用于 API
- localhost:8383/ui/ 用于 WEB (Angular JS)
但是,我将使用 nginx 将两者都移动到 localhost/api/ 和 localhost/ui/。因此,以上两个将被访问
- localhost/api/
- localhost/ui/
所以,我的第二个问题是实现 Spring Security 的最佳方式是什么:
- 基于令牌的身份验证
- 基于会话的身份验证
问题在于它是无状态服务,那么我们将如何实现基于会话的身份验证?
【问题讨论】:
-
这就是我正在做的事情,可能有助于您做出正确的决定。我的 webapp 只处理带有基于令牌的身份验证的其余 API。它不处理登录 ui 等。它只将 401 未授权状态发送回客户端。我有一个单独的 angularjs 和移动模块。 AngularJS 将通过 http 拦截器处理身份验证和重定向。
标签: angularjs spring rest spring-mvc spring-security