Symfon2에서 작업하고 있는데 설명서를 읽었습니다. 문제는 "보안"섹션에 속합니다. 나는 토큰을 세션에 유지할 수있는 사용자 지정 인증 공급자가 필요합니다. 그러면 다음 요청에서이를 얻을 수 있으며 사용자가 올바른 자격 증명을 제공하지 않으면 로그인 양식으로 리디렉션됩니다. 그는 다른 페이지로 리디렉션 될 정확한 자격 증명을 제공했습니다.AbstractAuthenticationListener를 사용하여 사용자 정의 인증 공급자 구현
1. [액세스 시작 페이지 (페이지 보호)]
사용자 ----------------------- --------------------------------> [사용자가 로그인 폼 페이지로 리디렉션 됨] ----> [사용자가 제공 한 잘못된 자격 증명] -----> [사용자는 양식 페이지를] 로그인 반환
2. [액세스 시작 페이지 (보호 된 페이지)]
사용자 ------------------------------------- -------------------> [사용자가 로그인 폼 페이지로 리디렉션 됨] ----> [사용자가 올바른 자격 증명을 제공함] -------> [[ 사용자가 welcom 페이지에 액세스]
사용자 정의 인증 공급자가 ldap, db ... 등으로 사용자를 확인한 다음 토큰을 제공하고이를 보안 컨텍스트에 저장하고 염두에두고 싶습니다. 내 로그인 양식 리디렉션이 올바르게 작동합니다 (사용자 자격 증명이 잘못되면 사용자가 로그인 양식 페이지로 리디렉션되고 올바른 경우 환영 페이지로 리디렉션됩니다).
요리 책에는 "How to create a custom Authentication Provider"에 대한 기사가 있으며, "WSSE 인증을위한 사용자 지정 인증 공급자를 만드는 방법"에 대해 설명합니다.
나중에 메모가 기록 된 문서: 클래스 이상 사용되지는 AbstractAuthenticationListener 클래스는 보안 확장을 위해 일반적으로 필요한 기능을 제공하는 매우 유용한 기본 클래스입니다. 여기에는 세션에서 토큰 유지 관리, 성공/실패 처리기, 로그인 양식 URL 제공 등이 포함됩니다. WSSE는 인증 세션이나 로그인 양식을 유지할 필요가 없으므로이 예제에서는 사용되지 않습니다.
요리 책에 언급 된 예에서 ListenerInterface이 사용되지만 로그인 양식 페이지에는 사용할 수 없습니다.
일부 사용자가이 문제를 해결하면 해결책을 얻게되어 매우 감사 할 것입니다. 당신은 DB 이외의 소스에서 사용자를 확인하려면
최고 감사합니다,
대니
감사 m2mdas,하지만 난 어쩌면 특별한 숫자이다, 또는 자격 증명이 올바른지, 자격 증명은 사용자 이름/비밀번호로 필요하지 않습니다 보안 컨텍스트로 나의 특별한 토큰을 추가해야합니다 서버, 사용자, 패스 등의 조합 ... –
내 편집 된 댓글보기 –
loadUserByUsername ($ username)을 가진 "UserProviderInterface"를 구현해야하기 때문에 왜 사용자 공급자 만 사용할 수 없습니까?하지만 이것은 내게 사용자 이름을 줄 것입니다. 내 상황에서 사용자가 LDAP를 제공해야하는 경우 자격 증명 사용자 이름/암호, 사용자/패스가 필요하므로 데이터베이스를 사용하여 사용자를 확인하지 않고 http://symfony.com/doc/current/cookbook/security/custom_provider.html의 솔루션을 사용한다고 가정합니다. 그래서 PHP에서 ldap 함수를 사용하여 사용자가 존재하는지 확인하고, 존재한다면 유효한 토큰을 반환 할 수 있습니다. –