2011-02-08 4 views
1

클라이언트 인증을 위해 클라이언트 키를 사용하여 웹 응용 프로그램을 만들려고합니다. 클라이언트를 실제로 인증받을 수 있도록 전체 트러스트 스토어 문제를 파악했다고 생각합니다. 그러나 나는 클라이언트 인증을 요구하고 싶지 않습니다. 난 단지 그것을 테스트하고 그것이 가능하다면 기능을 활성화하고 싶다.SSL 클라이언트 인증을 사용하는 Jetty truststore 인증

요청할 .wantClientAuth를 사용할 수 있지만 존재하지 않는 경우 연결을 허용합니다. 그러나 요청이 인증되었는지 확인하는 속성을 찾을 수 없습니다.

그렇지 않으면 wantClientAuth의 목적은 무엇입니까? 어떻게 사용합니까?

+0

이 두 가지 방법 중 어느 것도 작동하지 않았습니다. 나는 클라이언트가 허가 한 통신을 별도의 채널을 통해 전송하는 방법을 찾을 수 있었기 때문에이 문제를 적극적으로 다루는 것이 아닙니다. 그리고 나는 그 해결책을 계속 사용할 수 있습니다. – Arelius

답변

0

나는 설정이 지금 그것을 테스트하기 위해, 여기에 실행하지 않지만, request.getUserPrincipal()request.getAuthType() 당신이 원하는 걸주지해야한다.

(즉 당신이 작업하고있는 상황에서 서블릿 요청에 대한 액세스 권한이 가정)

http://www.docjar.com/docs/api/javax/servlet/http/HttpServletRequest.html를 참조

+0

서버 릿 요청이 있습니다. 문제는이 두 가지 모두 nil을 반환한다는 것입니다. – Arelius

0

당신은 서블릿 API의 사용을 팀의 방법을 사용하는 경우. 호출 컨텍스트에 따라 다른 아이디어가 있습니다.

핸드 셰이크가 완료되면 SSLSession에서 getCertChain을 호출 할 수 있습니다. null 인 경우 클라이언트는 클라이언트 인증서로 인증하지 않습니다.

http://www.javadocexamples.com/java_source/org/mortbay/jetty/security/SslSocketConnector.java.html

은 또한 당신이 HttpsURLConnection에에 getLocalPrincipal 또는 getLocalCertificates를 호출 할 수 있습니다

여기에 사용자 정의 방법을 참조하십시오. null 인 경우 클라이언트 인증서가 없습니다.

관련 문제