2013-04-15 2 views
0

나는 다음과 같은 인증 문제가 봄 보안을 사용하여 해결 될 수 있는지 확인하고 싶습니다 - 사전 인증 시나리오 :인증을 사용하여 봄 보안 - 사전 인증 시나리오

문제 :

  1. 사용자는 경유에 로그인을 (스프링 MVC에서 만든) 레거시 시스템 웹 시스템에
  2. 통화 페이지 웹 시스템이 (레거시 시스템)에 페이지를 호출 할 때
  3. 토큰, 사용자 이름을 통과하고
  4. 을 USER_ROLE
  5. 웹 시스템은 레거시 시스템에서 제공하는 웹 서비스를 사용하여 사용자 이름과 토큰을 확인합니다.
  6. 유효한 세션은 웹 시스템에서 생성되며 사용자는 다른 사용자가 보안을 봄

내가 사전 인증 시나리오를 사용할 수있다 오류 페이지로 연결되는 웹 페이지를 사용할 수있는 경우 제공합니까? 또는 토큰과 사용자의 유효성을 검증 할 Spring AOP aspect를 생성하는 것이 더 쉬운가?

스프링 보안 문서는 사전 인증 시나리오를 올바르게 사용하는 것에 대해 설명하지 못합니다. 최선의 경로를 안내하도록 안내해주세요. 더 많은 정보가 필요하면 알려주십시오.

좋은 예 또는 링크 환영합니다.

+0

어떤 문서를 참조하는지 잘 모릅니다. 참조 : http://static.springsource.org/spring-security/site/docs/3.2.x/reference/preauth.html. 기본 기능은 3 가지 사전 인증 케이스 (X.509, Siteminder 및 J2EE 컨테이너에 의한 인증) 밖에 없습니다. 귀하의 경우 필터 구현 (토큰 및 사용자 이름 잡기 및 인증 토큰 작성)과 인증 공급자 (권한 부여 및 인증)를 작성해야합니다 (1). – Ritesh

+0

@Ritesh는 귀하가 예제를 제공 할 수있는 위치에 있습니까? – Khush

+0

이 질문을 참조하여 자신의 인증 토큰 및 인증 공급자를 작성하려면 http://stackoverflow.com/questions/4783063/configuring-spring-security-3-x-to-have-multiple-entry-points를 참조하십시오. – Ritesh

답변

1

은 기존 시스템과 웹 시스템이 서로 다른 두 가지 응용 프로그램입니까?

기본적으로 다른 웹 응용 프로그램의 레거시 시스템에있는 사용자의 로그온 세션을 만들고 싶습니다. 2 차 시스템에 자동 로그온의 종류. 스프링 시큐리티는 당신을 도울 수 있지만 OAuth 1.0이나 2.0을 지원해야합니다.

https://github.com/SpringSource/spring-security-oauth/wiki/oauth1

http://static.springsource.org/spring-security/oauth/는 꽤 언젠가 다시 유사한 시나리오에 OAuth1.0을 사용했다. 내 머리 꼭대기에 나는 소비자가 인증 토큰 2) 서버 요청 OAuth를 미리 정의 된 단계 1) 토큰 3) 소비자가 토큰 인증을 통과하고 요청 NEXT) 4 권한을 부여하는 토큰을 요청하는 요청을 제공합니다 생각 액세스 토큰의 경우 5) 일단 도착하면 서버의 지정된 URL로 요청을 보내 액세스 권한이 부여됩니다.

필자가 작성한 것보다 더 복잡하지만 봄에 대한 좋은 점은 스프링이 토큰 비트를 처리하고 최소한의 코딩 만해야한다는 것입니다. 희망 사항입니다.

+0

예 @Soumya, 기존 시스템 및 웹 시스템은 2 가지 응용 프로그램입니다. 예제를 제공 할 수 있습니까? – Khush

+0

http://stackoverflow.com/questions/14522634/spring-security-oauth-2-simple-example http://www.javacodegeeks.com/2012/02/oauth-with-spring-security.html 더 많은 정보가 있습니다. . 나는 현재 구현에 사용 된 준비된 코드가 없습니다. 하지만 OAuth 스프링 지원을 파헤 치면 몇 가지 문제를 해결할 수 있습니다. – Soumya

+0

단일 접근 방식을 찾고 있습니다. 이상적으로는 기존 시스템을 통해 한 번만 로그인하는 것이 좋습니다. – Khush

0

사용자가 레거시 시스템으로 로그인하면 서버 측에 인증 토큰을 생성 할 수 있습니다.이 토큰은 쿠키 및 localStorage의 DB 및 사용자 측에 저장됩니다. 그런 다음 각 요청과 함께이 토큰을 전달하고 내 대답에 설명 된 것과 같이 사전 인증 필터에서 확인하십시오. https://stackoverflow.com/a/37204764/1562234