Login 保护SPA多租户SaaS应用程序
我需要一些关于保护单页多租户saas应用程序的帮助 问题: 1) 实施它的最佳方式是什么?我正在尝试使用angularjs、SpringMVC和REST构建应用程序。 2) 使用Spring安全性可以做到这一点吗?任何创建登录页面和保护REST的例子,调用都会有帮助吗 我发现了一个使用springjpa()实现spring安全性的示例,但它不适用于SPA和SaaS 我理解这是一个非常广泛的问题,但我对SPA、REST和SaaS还不熟悉,所以任何建议都会有所帮助Login 保护SPA多租户SaaS应用程序,login,angularjs,spring-security,saas,single-page-application,Login,Angularjs,Spring Security,Saas,Single Page Application,我需要一些关于保护单页多租户saas应用程序的帮助 问题: 1) 实施它的最佳方式是什么?我正在尝试使用angularjs、SpringMVC和REST构建应用程序。 2) 使用Spring安全性可以做到这一点吗?任何创建登录页面和保护REST的例子,调用都会有帮助吗 我发现了一个使用springjpa()实现spring安全性的示例,但它不适用于SPA和SaaS 我理解这是一个非常广泛的问题,但我对SPA、REST和SaaS还不熟悉,所以任何建议都会有所帮助 谢谢……我已经参与了两个SPA和安
谢谢……我已经参与了两个SPA和安全方面的项目。最后一个是GWT+Spring Security。我相信您可以成功地将Angular和Spring Security结合使用 不幸的是,在SpringSecurityAFAIK中没有内置的配置参数“我们处于SPA模式”。因此,需要从Spring安全性方面对/conf进行一些调整。例子: 想象一下,在登录过程中,您调用内置的Spring安全登录控制器。默认情况下,如果认证成功,用户将被重定向到索引页,如果认证失败,用户将被重定向到相应的错误页。这是标准web应用程序的正常行为,但对于SPA web应用程序来说却没有那么大的用处。在SPA的情况下,您需要检测AJAX调用并打印带有用户名/角色的JSON(成功的情况下)或发送401代码(失败的情况下)(然后在JS中检测401并显示相应的错误)。您可以使用Spring Security中相应的扩展点来执行此操作:
AuthenticationSuccessHandler
和AuthenticationFailureHandler
还有一点需要调整:默认情况下,会话到期后,用户将被重定向到登录页面(SPA应用程序接收登录页面作为对下一个AJAX调用的响应)
查看我的个人体验一般指南如下:登录后将角色列表加载到JS中。使用它在UI端显示/隐藏相应的组件在服务器端也应用相同的限制列表。确保用户不会在浏览器中编辑JS(尽管在一些中型应用程序的缩小JS的情况下,这将是一项非常复杂的任务)。在服务器端,您必须在以下选项中进行选择: