2012-08-16 76 views
3

我已经开发了一个应用程序,直到现在我已成功地通过不显示/隐藏菜单选项或某些屏幕的按钮来限制屏幕访问。但现在的问题是用户能够在地址栏中键入url时访问屏幕。如何限制Web应用程序中的屏幕访问..?

我知道我不是第一个这样做,所以必须有某种标准的做法。 所以如果有人知道任何图书馆或某种方式来做到这一点,请让我知道。

谢谢。

+0

查看此[库](https://github.com/cemerick/friend/)从基于环的Web应用程序的身份验证和授权。 – Ankur 2012-08-16 06:17:05

回答

2

免责声明 - 我不知道这将如何转化为Clojure,因为我从来没有使用它。

通常情况下,您会使用授权处理程序来装饰响应视图的方法。该处理程序知道如何与您的身份验证后端进行通信。它从当前上下文获取用户标识符(可以是用户标识符/用户名等),并向后端查询用户对请求视图的授权。

如果通过,则显示视图。

如果它被拒绝,那么根据业务规则(和安全准则)采取行动。这些可以像友好一样简单“你不允许在这里”;记录操作然后结束用户的会话。

如果您的应用程序有一组有限的端点(URL),您可以为用户创建端点的静态地图并将其用作您的访问控制列表(ACL)。但是,在大多数现代应用程序中,ACL是在一系列对象中进行控制的 - 并且端点(URL)不受限制,因为它们是动态的。例如/inventory/product/1/user/admin/3

更新:

link提供装饰图案的视觉示图。

更新2:

授权库提供一些助手,会做的授权检查(“这是用户允许查看”),但在执行代码是留给各个应用。

通常你会使用一个或多个认证库(如誓言);但授权部分留给您的实施。

一个快速的谷歌带我到securing clojure web applications with sandbar这应该与你更相关。

+0

谢谢..同样在我心中..我可以使用这样做的前路线。但似乎有其他方法可以做到这一点。像一些授权库,如果我是正确的.. – ngesh 2012-08-16 05:39:24

相关问题