2016-09-26 57 views
1

我們有一個自定義認證服務,它通過REST服務接受參數並提供json響應。根據響應我們重定向用戶。我希望將此Web服務與我們的新Alfresco Box集成。帶有定製認證web服務的Alfresco

有沒有辦法做自定義的基礎認證,而不是使用LDAP或內置的SSO插件?

+1

,我認爲,我們可以覆蓋份額側配置部分,但我需要檢查之謂也。在share-config.xml文件中檢查此節。 –

回答

1

如果我理解正確的...

  1. 實現自定義remote user mapper

    package best.package.ever; 
    import org.alfresco.repo.security.authentication.external.DefaultRemoteUserMapper; 
    
    public class CustomRemoteUserMapper extends DefaultRemoteUserMapper { 
        public boolean canHandle(HttpServletRequest request) { 
         return true; // TODO 
        } 
        public String getTrustedUserId(HttpServletRequest request) { 
         // TODO: validate & authorize... e.g. based on trusted Json Web Token 
         return "trusted.user.id"; // TODO 
        } 
        public String getRemoteUser(HttpServletRequest request) { 
         if (canHandle(request)) { 
          return getTrustedUserId(request); 
         } else { 
          return super.getRemoteUser(request); 
         } 
        } 
    } 
    
  2. 把你最好的圖書館 - 封裝 - ever.jar到的tomcat \的webapps \戶外\ WEB -INF \ lib

  3. 聲明您的自定義bean並將它注入到RemoteUserMapper bean中: 的tomcat \共享\類\戶外\推廣\認證定製的context.xml

    <?xml version='1.0' encoding='UTF-8'?> 
    <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> 
    <beans> 
        <bean id="customRemoteUserMapper" class="best.package.ever.CustomRemoteUserMapper"> 
         <property name="personService" ref="PersonService"/> 
         <property name="authorityService" ref="AuthorityService" /> 
        </bean> 
        <bean id="RemoteUserMapper" class="org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory"> 
         <property name="applicationContextManager"> 
          <ref bean="Authentication" /> 
         </property> 
         <property name="interfaces"> 
          <list> 
           <value>org.alfresco.repo.security.authentication.external.RemoteUserMapper</value> 
           <value>org.alfresco.repo.management.subsystems.ActivateableBean</value> 
          </list> 
         </property> 
         <property name="sourceBeanName"> 
          <value>customRemoteUserMapper</value> <!-- extending remoteUserMapper --> 
         </property> 
        </bean> 
    </beans> 
    
+0

我會盡力回覆你。 –

+0

我的答案能解決你的問題嗎?如果您有任何其他問題,請告訴我們。 – wildloop