【问题标题】:Alfresco share authenticationAlfresco 共享认证
【发布时间】:2013-05-22 19:15:39
【问题描述】:

我需要修改共享认证机制。当用户尝试从共享页面登录时,我需要添加一个检查以检查用户的租户域是否具有网址前缀。如果用户名的租户地址与网址前缀匹配,则允许用户登录,否则拒绝身份验证。

例如:

用户从 mydomain.alfresco.com/share 以 username@mydomain.com 身份登录

在上述情况下,用户将被允许登录,因为 ...@mydomain.com 与网址前缀 mydomain.alfresco.com/share 匹配。

我不知道从哪里开始,如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: java spring authentication alfresco surf


    【解决方案1】:

    我将实现它覆盖loginController Spring bean。复制org.springframework.extensions.surf.mvc.LoginController.java 并将您的自定义逻辑添加到handleRequestInternalrequest.getParameter("username")request.getHeader("Host") 应该提供比较值。

    通过将 bean 定义放在类路径中的文件 alfresco/web-extension/custom-context.xml 中来覆盖默认实现的一种方法。

    <bean id="loginController" class="CustomLoginController">
        <property name="cacheSeconds" value="-1" />
        <property name="useExpiresHeader"><value>true</value></property>
        <property name="useCacheControlHeader"><value>true</value></property>
        <property name="userFactory" ref="user.factory"></property>
        <property name="connectorService" ref="connector.service" />
    </bean>
    

    【讨论】:

    • 感谢您的回复。您能否就如何实现 LoginController 提出建议?登录过程中永远不会调用此类。
    • 完全按照给出的说明进行操作。您将不得不更改基于 org/springframework/extensions/surf/mvc/LoginController.java 副本的 CustomLoginController 类中的方法 handleRequestInternal 的主体。在没有自定义类的情况下尝试上面的 spring bean 定义,您将看到 share 无法开始抱怨缺少的类。
    • 我能够按照您的建议进行操作。我之前在我的 LoginController 中设置了一个断点,但线程没有挂起,结果证明来自 SVN 存储库的 LoginController 与安装在 Alfresco 中的登录控制器没有正确同步。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    相关资源
    最近更新 更多