Um usuário perguntou ?
Eu recentemente atualizei meu plugin Shibboleth para v1.8. Depois que fiz isso, não consegui fazer o login. Recebo uma página de login normal do WordPress com a mensagem de erro “Não é possível criar uma conta com base nos dados fornecidos” na parte superior. Se eu clicar no link “Entrar com Shibboleth”, o WordPress me levará de volta à mesma página de login.
Infelizmente, não há pistas no arquivo de log de erros do meu host (na verdade, ele está vazio e permaneceu assim enquanto eu estava recebendo o erro). Meu plugin WP Security Audit Log indica tentativas de login com falha para minha conta e outras tentando fazer login com a v1.8.
Instalei esta atualização em três sites WordPress e todos eles dão o mesmo resultado. Todos eles rodam o WordPress v4.8.1. A boa notícia é que se eu restaurar o plugin Shibboleth v1.7 do backup, os usuários poderão fazer login novamente.
Quer saber se isso está sendo visto por outras pessoas e, em caso afirmativo, há alguma correção ou solução? Obrigado!
(@jmdemuth)
3 anos, 4 meses atrás
Eu fiz um pequeno rastreamento através do código. Parece-me que nosso ambiente de hospedagem na web armazena o nome de usuário Shib/Shibboleth em $_SERVER[“uid”]. No plugin v1.7, a função shibboleth_authenticate_user() parece definir a variável $username com base neste valor.
É plugin v1.8, porém, parece querer obter o $_SERVER[“uid”] valor via função getenv() com valor “UID”. Isso parece definir $username para um valor booleano “falso”. Isso é o que parece quebrar o registro.
Não tenho certeza de como corrigir isso, exceto para sugerir a remoção do valor de $_SERVER novamente em vez de usar getenv(). No entanto, os sites onde isso acontece ainda estão no PHP v5.x. Então eu estou querendo saber se getenv() tem um problema com o PHP v5.x não obtendo os dados corretos. Talvez atualizar para o PHP v7 resolveria esse problema?
(@michaelryanmcneill)
3 anos, 4 meses atrás
Obrigado por comunicar este problema. Estou vendo isso agora. Você pode cruzar seu problema para GitHubGenericName?
(@michaelryanmcneill)
3 anos, 4 meses atrás
@jmdemuth Eu estava analisando isso e não vejo onde entra a pergunta. Eu testei o PHP 5.6 sem problemas. De acordo com o documento de getenv():
Esta função é útil (comparada com $_SERVER, $_ENV) porque ela procura por uma chave $varname em um formulário de edição com distinção entre maiúsculas e minúsculas. Por exemplo no Windows $_SERVER[‘Path’] parece que você vê letras maiúsculas, não “PATH” como esperado. Então apenas:
Vou fazer algum trabalho de diagnóstico adicional, mas quaisquer dados adicionais (SO, configuração do SP, servidor web, etc.) em seu ambiente seriam úteis.
(@michaelryanmcneill)
3 anos, 4 meses atrás
Isso foi resolvido quando a versão 1.8.1 foi lançada. Você pode ver a discussão completa no GitHub aqui:
(@jmdemuth)
3 anos, 4 meses atrás
Aqui está apenas um acompanhamento: confirmei com nossos hosts da web que em nosso ambiente restringimos o acesso do Apache a variáveis de ambiente por motivos de segurança. É por isso que usar getenv() (diferente de $_SERVER) no plugin não poderia usar nenhum valor (nós).
Isto foi útil?
0 / 0