Apache Tomcat을 통해 제공되는 REST API는 Flash 웹 애플리케이션과 통신하도록되어 있습니다.인증 전에 인바운드 Java 서버 인증 헤더 재 작성
인증은 기본 인증 안의 SSL (기본 인증 안의 암호가 SHA-2 '임에도 불구하고)을 사용하여 수행됩니다. 문제는 Flash 클라이언트에 기본 인증을 사용하면 헤더의 "WWW 인증 : 기본"으로 인해 표준 브라우저 로그인 상자가 표시되는 것입니다. Flash는 요청 전에 Authorization 헤더를 수동으로 설정하여이를 우회 할 수 없습니다.
다른 클라이언트는 기존 메커니즘을 통해 인증 할 수 있어야하므로 인증 논리를 다시 작성하는 것이 이상적이지는 않습니다.
플래시 클라이언트와주고받은 인증 헤더를 동적으로 다시 작성하여 브라우저가 인증 메커니즘을 이해하지 못하고 대화 상자를 표시하지 못하게하는 기본 인증에 다른 이름을 사용할 수 있다는 생각이 들었습니다. Tomcat과의 인증 헤더는 "WWW-Authenticate : Basic"에서 "WWW-Authenticate : PretendBasic"로 다시 작성할 수 있지만 이상적으로 컨테이너 보안은 다시 작성된 후에 기본 인증을 처리 할 수 있습니다.
필자는 인바운드 헤더를 "WWW-Authenticate : PretendBasic"로 "WWW-Authenticate : Basic"으로 다시 쓰는 필터를 작성하여 다음 필터 체인이 인증되어 요청이 정상적으로 처리 될 것을 기대했습니다. 불행히도 서블릿 스펙에서는 인증 전에 필터를 삽입 할 수 없다고 명시하고 있습니다. 이 작업의 유일한 가능성은 플래시 클라이언트에서 오는 경우 요청에 대한 헤더 재 작성을 먼저 수행 한 다음 기존 컨테이너 관리 보안 시스템에 인증을 전달하는 스택 가능한 JAAS 인증 모듈을 만드는 것입니다.
저는 JAAS에 익숙하지 않기 때문에 커뮤니티가이를 달성하는 방법에 대해 밝힐 수 있는지, 그리고 처음에는 좋은 생각인지 여부를 알려 드리고자합니다.
안타깝게도 Flash에서 명시 적으로 인증 헤더를 설정하는 것은 허용되지 않습니다. 이것은 Flash Player에 의해 시행되는 보안 제한 사항입니다. – zod90