我正在开发一款体积相当大的Spring MVC应用程序,该应用程序将继续增长。它是一个传统的Spring MVC应用程序,其视图是JSP,它呈现返回给浏览器的HTML。该应用程序使用了大量的javascript和jQuery插件。 javascript分散在整个代码中,并且越来越难以维护。我们想清理它并移动到单页应用程序。我们研究过Backbone.js,特别是Marionette。我们有几个问题:
Spring Security如何使用它?据我所知,不是从服务器返回的JSP和HTML,它将通过RESTful API成为JSON。因此,当用户使用用户名/密码登录时,是否需要生成API密钥并将其发送到成功的身份验证响应中?那么从那时起,每个API调用都会有API密钥部分来验证每个调用吗?
是否有其他人发现成功将带有JSP视图的传统Spring MVC应用程序移植到具有RESTful API的Javascript MVC视图架构?是否值得和任何建议?
答案 0 :(得分:3)
我有一些从事类似项目的经验。如果您需要对应用程序进行频繁维护,那么您投资清理客户端代码的时间应该会得到回报。如果重用一些现有的服务器端代码,它可能比您想象的要容易。
您现有的mvc路线可能很适合您的域名。您可以调整现有的API,而不是尝试实施全新的api 弹簧控制器返回json。使用这种方法可以免费使用Springs现有的身份验证/会话管理,从而节省您的时间和精力。
有一点需要注意。你将需要处理401&从骨干提取方法返回的403状态代码。根据您的应用程序,为此设置全局处理程序可能很有用。
全球重定向401/403
App.on("initialize:after", function() {
$(document).ajaxError(function (event, xhr) {
if(xhr.status === 401) {
window.location.href('/#sign-in');
}else if(xhr.status === 403) {
window.location.href('/#restricted');
}
});
Backbone.history.start();
});