java - 露天共享认证

标签 java spring authentication alfresco surf

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

例如:

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

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

我不知道从哪里开始,希望能得到任何帮助来完成此任务。

最佳答案

我会覆盖 loginController Spring bean 来实现它。复制 org.springframework.extensions.surf.mvc.LoginController.java 并将您的自定义逻辑添加到handleRequestInternal。 request.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>

关于java - 露天共享认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699885/

相关文章:

java - 纬度经度对之间的距离精度

java - 当我单击“like”按钮时,它不会调用设置要调用的方法

java - LanguageTool Java API 是否有 "useless"依赖项?

authentication - 鱿鱼 : forward to another proxy (with authentication details for the parent proxy)

java - 如何删除 swt/jface 中的向导容器标题栏

mysql - Spring 存储库中的自定义查询

java - 如何在没有 web.xml 的情况下编写 Encodingfilter 配置

java - 使用用户名和密码连接到另一个服务的 Spring Security 5.2/WebClient 方式是什么?

authentication - 应用程序用户应如何获取 JWT token ?

ios - Box v2 API - "Remember login"复选框