Как я могу интегрировать Alfresco с Wordpress с помощью единого входа? - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь настроить единый вход между Wordpress и Alfresco, по этой причине я добавил плагин WordPress OAuth2 Provider на моей панели администрирования WordPress. плагин WordPress

Я создал клиент и вставил URI перенаправления на мой сервер, и плагин дал мне ключ и секрет.Прямо сейчас, после входа в WordPress, я захожу в свой блог и нажимаю на ссылку, чтобы перейти на alfresco, но страница с URL:

http://localhost:8080/share/page/repository?oauth=authorize&response_type=code&client_id=**************&client_secret=**************&redirect_uri=http%3A%2F%2Flocalhost%2F%3Fauth%3Dssoe

alfresco login

Задайте мне имя пользователя и пароль еще раз!Как я могу настроить Alfresco, чтобы он регистрировался с этими учетными данными?Спасибо всем, кто хочет мне помочь, и извините за мой плохой английский.

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Вероятно, проще настроить Alfresco для внешней аутентификации, затем добавить прокси-сервер перед Alfresco, который может работать с вашими токенами OAuth2.Alfresco изначально не поддерживает OAuth2.Поэтому, если вы не используете Внешний, вам придется самостоятельно писать код аутентификации.

0 голосов
/ 05 июня 2018

Alfresco включает в себя несколько систем аутентификации, в том числе базу данных Alfresco, Active Directory, LDAP, Kerberos, External и может быть настроен для аутентификации на одной из них или их комбинации.Обычно эти системы аутентификации охватывают большинство необходимых комбинаций и механизмов аутентификации.

Вы также можете использовать подсистему пользовательской аутентификации alfresco, в которой вам нужно передать условие, когда вы хотите аутентифицировать пользователя, это некоторый фрагмент класса java для аутентификации

     package org.alfresco.tutorial.repo.security.authentication;

import net.sf.acegisecurity.Authentication;

import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.security.authentication.AbstractAuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationException;
import org.apache.commons.codec.binary.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class CustomAuthenticationComponentImpl extends AbstractAuthenticationComponent {
    private static final Log LOG = LogFactory.getLog(CustomAuthenticationComponentImpl.class);

   /**
    * Some custom properties that could be used to inject a remote login server hostname and port.
    * Not used at the moment but demonstrates property injection in custom authentication component.
    */
    private String remoteAuthenticatorHostname;
    private String remoteAuthenticatorPort;

    public void setRemoteAuthenticatorHostname(String remoteAuthenticatorHostname) {
        this.remoteAuthenticatorHostname = remoteAuthenticatorHostname;
    }

    public void setRemoteAuthenticatorPort(String remoteAuthenticatorPort) {
        this.remoteAuthenticatorPort = remoteAuthenticatorPort;
    }

    public void authenticateImpl(String userName, char[] password) throws AuthenticationException {
        if (LOG.isDebugEnabled()) {
           LOG.debug("Login request(" + remoteAuthenticatorHostname + ":" + remoteAuthenticatorPort +
           ") : [userName=" + userName + "][password=" + String.valueOf(password) + "]");
        }

        // Do your custom authentication here, and then set the current user (in this example we are only allowing
        // john to authenticate successfully, and we don't check pwd)
        // You would typically connect to the remote authentication mechanism to verify username/pwd...
        if (StringUtils.equals(userName, "john") || isGuestUserName(userName) ||
                getDefaultAdministratorUserNames().contains(userName)) {
            setCurrentUser(userName);
        } else {
            String msg = "Login request: username not recognized [userName=" + userName + "]";
            LOG.error(msg);
            throw new AuthenticationException(msg);
        }
    }

    /**
     * The default is not to support token base authentication
     */
    public Authentication authenticate(Authentication token) throws AuthenticationException {
        throw new AlfrescoRuntimeException("Authentication via token not supported");
    }

    /**
     * This authentication component implementation allows guest login
     * @return
     */
    @Override
    protected boolean implementationAllowsGuestLogin() {
        return true;
    }
}

Пожалуйста, обратитесь к документации для более подробной информации

...