露天共享检查身份验证

时间:2015-12-04 11:50:40

标签: authentication share alfresco disconnected

分享如何知道用户未连接(并将其重定向到登录页面)?

即使用户已连接,我也想检查他是否拥有某些权限,如果没有,则将其重定向到登录页面。因此,我想知道Share如何从会话中管理经过身份验证的用户。

我可以使用过滤器,监听器或servlet或任何其他机制拦截共享上的所有网址,并检查连接的用户是否需要权限。

我正在使用alfresco 5.0.d。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

根据所使用的身份验证方法以及访问Share的哪些服务(页面,代理Servlet或Web脚本),有多个地方可以对当前用户进行检查:

  • class SSOAuthenticationFilter - 一个servlet过滤器,用于处理其名称中所述的单点登录(SSO),例如: Kerberos,NTLM或CAS /外部身份验证
  • class PageView - Surf框架的一部分,用于检查当前用户是否具有当前页面所需的权限(由页面XML定义定义的guest,user,admin的区分)
  • class SlingshotPageView - PageView类的增强/特化
  • class EndpointProxyServlet - 处理通过Share代理的任何后端ReST API调用的身份验证
  • 类PresentationContainer和Authenticator接口的实例 - 处理对正常页面呈现周期之外的任何Web脚本的直接调用

从技术上讲,您可以使用过滤器来拦截Share上的所有servlet调用,但从维护的角度来看,它并不理想(web.xml不易扩展并在升级时覆盖)。如果您感兴趣的只是页面呈现请求,则可以使用Surf extension modules注入后处理代码,如果缺少用户权限,则能够生成重定向响应。通过根作用域“状态”对象,您可以发送HTTP重定向响应并定义目标位置。