2016-09-26 4 views
1

Wir haben einen benutzerdefinierten Authentifizierungsdienst, der einen Parameter über einen REST-Dienst akzeptiert und eine JSON-Antwort bereitstellt. Basierend auf der Antwort leiten wir den Benutzer um. Ich möchte diesen Webservice mit unserer neuen Alfresco Box integrieren.Alfresco mit benutzerdefinierter Authentifizierung webservice

Gibt es eine Möglichkeit, benutzerdefinierte Basisauthentifizierung anstelle von LDAP oder integrierten SSO-Plugin zu tun?

+1

Ich denke, wir können den Konfigurationsabschnitt auf die Aktienseite außer Kraft setzen, aber ich muss auch auf das überprüfen. Überprüfen Sie diesen Abschnitt in der Datei share-config.xml. –

Antwort

1

Wenn ich das richtig verstanden ...

  1. Implementieren Sie Ihre individuelle 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. Setzen Sie Ihre Bibliothek best-Paket-ever.jar in tomcat \ webapps \ alfresco \ WEB -INF \ lib

  3. Deklarieren Sie Ihre benutzerdefinierte Bean und injizieren Sie sie in RemoteUserMapper Bean: tomcat \ shared \ classes \ alfresco \ Erweiterung \ Authentifizierung-custom-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

Ich werde versuchen, auf Sie zurückzukommen. –

+0

Beantwortet meine Antwort Ihr Problem? Bitte lassen Sie uns wissen, wenn Sie weitere Fragen haben. – wildloop

Verwandte Themen