2013-03-11 3 views
1

LDAP를 사용하여 사용자를 인증합니다 (FOS 사용자 번들로 대체). 모든 것이 정상적으로 작동하고 로그인 할 수 있습니다.fr3d LdapBundle - 로그인 금지

그러나 이것은 "새로운"문제를 일으켰습니다. FOS를 사용하여 애플리케이션에 로그인 할 수있는 사용자를 제어하고 LDAP를 사용하여 비밀번호를 제어하려고합니다.

나는이 사용 ROLES 시도 :

- { path: ^/, role: ROLE_PGM_USER } 

을하지만 사용자가 이미이 시점에서 로그인 한 것처럼 적절한 장소가 아니다.

fr3d를 구성하여 fos "enabled"필드를 확인한 다음 로그인 할 수없는 경우 사용자 정의 메시지를 표시하는 방법이 있습니까?

답변

1

발견.

여기의 지침을 사용하여 LdapManager (https://github.com/Maks3w/FR3DLdapBundle/blob/master/Resources/doc/cookbook/override_ldap-manager.md)를 재정의하십시오.

그런 다음과 같이 바인드 기능을 변경

/** 
* {@inheritDoc} 
*/ 
public function bind(LdapUserInterface $user, $password) 
{ 
    if (!$user->hasRole('ROLE_PGM_USER')) { 
     return false; 
    } 
    return $this->connection->bind($user->getDn(), $password); 
} 

이러한 방식으로 사용자가 "ROLE_PGM_USER"로그인없이 방지된다

.
관련 문제