응용 프로그램과 함께 로그인에 사용자 정의 인증 관리자를 사용합니다. Users라는 테이블을 검색하면됩니다.다른 URL에서 오는 다른 로그인
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider user-service-ref="userDAOImpl">
<sec:password-encoder hash="sha" />
</sec:authentication-provider>
</sec:authentication-manager>
문제는 이제 "ExternalUsers"테이블에서 검색해야하는 다른 로그인을해야한다는 것입니다.
응용 프로그램은 이런 방식으로 작동합니다 :
- 를 요청/외부와 같은 URL에서 온다면/** 나는 테이블 "ExternalUsers"를 검색하는 A authenticationManager2을 통해 이동해야합니다. 이 사용자는/external/** urls에만 액세스 할 수 있습니다.
- 요청이 다른 사용자의 요청입니다. 사용자 인 authenticationManager1 (지금 당장 가지고있는 사용자)을 통해 이동해야합니다. 이러한 사용자는 동일한 사용자 이름와 테이블 사용자 및 ExternalUsers 에/**
가있을 수 있습니다 사용자가 외부의 모든 URL하지만 패턴과 일치하는 사람을/액세스 할 수 있습니다. 이것이 URL의 출처에 따라 다른 로그인을 설정해야하는 이유입니다. 두 로그인은 동일한 응용 프로그램에 있어야합니다.
Spring에서는 요청 URL에 따라 서로 다른 두 개의 authenticationManager를 구성 할 수 있습니까?
감사합니다.
그러나 어떻게 authenticationManager를 구현하면 요청 URL을 알 수 있습니까? – Javi
@ Javi : 내 잘못 : 인증 공급자가 관리자가 아닙니다. – Ralph