2015-05-10 45 views
0

我有一個單頁的應用程序,我想使用彈簧安全。 在spring-security.xml文件中,我必須給出一個url來阻止用戶。Spring Back with Backbone URL

例如:

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

此配置後,當我嘗試不認證

"localhost:8082/project_name/#cities" 

沒有阻止我進入。我可以訪問該頁面。

我想,這是因爲URL不是真正的URL。只有一個頁面。 (index.html)

我該如何解決這個問題?我很抱歉我的英語不好。謝謝!

回答

1

您無法在後端保護路由,因爲#號登錄之後沒有任何內容會被髮送到服務器。你可以保護PAGES和ajax端點,但是你不能保護路由(哈希#之後的東西)。

在您的示例url中,您只能保護URL的/ project_name部分。如果你不想讓人們訪問/ project_name /#城市,那麼你需要創建一個不同的頁面。

如果您想保護#cities視圖,您需要停止將該模塊呈現給客戶端(確保包含#cities代碼的.js文件不會被髮送),或者你可以讓#cities視圖必須檢索數據並保證ajax端點的安全。

+0

謝謝你的回答。 那麼你能給我一個關於Backbone Single Page App中會話管理的建議嗎? –