带有骨干URL的Spring安全性

时间:2015-05-10 23:59:34

标签: spring security backbone.js

我有一个单页应用程序,我想使用spring security。 在spring-security.xml文件中,我必须提供一个url来阻止用户。

例如:

<security:intercept-url pattern="/#cities" access="isAuthenticated"/>

在我尝试无需身份验证时输入此配置

"localhost:8082/project_name/#cities" 

它并没有阻止我。我可以访问该页面。

我认为,这是因为URL不是真正的URL。只有一页。 (index.html的)

我该如何解决这个问题?我很不好意思我的英语不好。谢谢!

1 个答案:

答案 0 :(得分:1)

您无法在后端保护路由,因为URL中的#符号之后没有任何内容发送到服务器。您可以保护PAGES和ajax端点,但是您无法保护路由(哈希#之后的东西)。

在您的示例网址中,您只能保护网址的/ project_name部分。如果您不希望人们访问/ project_name / #city,那么您需要将其设为不同的页面。

如果您想保护#cities视图,您需要停止该模块呈现给客户端(确保包含#cities代码的.js文件不会被发送到),或者你可以这样做,以便#cities视图必须检索数据并保护ajax端点。