Symfony 6.3.12 использует информацию пользователя из SimpleSAMLphp для программного входа в систему, не работаетPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Symfony 6.3.12 использует информацию пользователя из SimpleSAMLphp для программного входа в систему, не работает

Сообщение Anonymous »

Код: Выделить всё

class SamlController extends AbstractController
{

private LoggerInterface $logger;
private EntityManagerInterface $entityManager;
private UserPasswordHasherInterface $userPasswordHasher;
private UserAuthenticatorInterface $userAuthenticator;

public function __construct(LoggerInterface $logger, EntityManagerInterface $entityManager, UserPasswordHasherInterface $userPasswordHasher, UserAuthenticatorInterface $userAuthenticator)
{
$this->logger = $logger;
$this->entityManager = $entityManager;
$this->userPasswordHasher = $userPasswordHasher;
$this->userAuthenticator = $userAuthenticator;
}

#[Route('/saml/login', name: 'saml_login')]
public function saml(Request $request, Security $security, string $sp = "default-sp", ): Response
{
$session = $request->getSession();
$userInfo = $this->samlMSAuth($sp);
$user = $this->entityManager->getRepository(Zuser::class)->findOneBy(['email' => '[email protected]']);

$security->login($zuser, 'security.authenticator.form_login.main', 'main');
return $this->redirect('/home');
}

#[Route('/saml/logout', name: 'saml_logout')]
public function samlLogout(Security $security): Response
{
$security->logout(false);
return $this->redirectToRoute('saml_login');
}

public function samlMSAuth(string $sp = "default-sp")
{
$as = new \SimpleSAML\Auth\Simple($sp);
$as->requireAuth();
$attributes = $as->getAttributes();
$email = $attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'];
$surname = $attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname'];
$givenname = $attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'];
$userInfo = [
"Email" => $email[0],
"Surname" => $surname[0],
"Givenname" => $givenname[0],
];
return $userInfo;
}
}
Когда используется $userInfo = $this->samlMSAuth($sp); для получения информации о пользователе (электронная почта для поиска в базе данных), если вы отображаете страницу в конце В свою очередь, с помощью Symfony Debugger вы можете видеть, что пользователь входит в систему.
Но когда вы переходите на другие страницы, пользователь больше не входит в систему.
Но удалите $userInfo = $this->samlMSAuth($sp); и программно жестко запрограммировав адрес электронной почты и вход в систему, пользователь сохраняется на всех страницах.

Код: Выделить всё

        $as = new \SimpleSAML\Auth\Simple($sp);
$as->requireAuth();
Приведенный выше код перенаправит на страницу входа в Microsoft и обратно в веб-приложение.
Даже если сеанс испортился, после входа в систему был создан новый сеанс, но почему он не сохраняется ?
Сессия перед входом в систему пуста,
Пробовал $request->getSession()->set('_security_main', сериализация($token));< /p>
Сеанс должен сохраняться во время перенаправления, но почему-то этого не происходит.
Но удаляет $userInfo = $this->samlMSAuth($sp); так что без внешнего редиректа все работает.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... gin-not-wo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Symfony 6.3.12 использует информацию пользователя из SimpleSAMLphp для программного входа в систему, не работает
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Symfony Unit Testing с LoginUser (), вход в систему не работает (возвращение 302 на страницу входа в систему)
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • SIMPLESAMLPHP CAT
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как настроить simplesAmlphp в WordPress
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • SimplesAmlphp Установка не отображает страницу администратора, но приветствует страница
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»