2011-08-10 2 views
0

Tomcat과 함께 배포 된 웹 응용 프로그램에 대한 간단한 폼 기반 로그인을 구현하려고합니다. loginPage.html의 필드는 j_usernamej_password이며 양식 메서드는 지정된대로 입니다./Actions는 css 및 js 파일뿐만 아니라 모든 html 및 jsp 파일을 포함하는 디렉토리이며 모든 서블릿 매핑은 /Actions/servletName.do 형식입니다. 액션이없는 유일한 페이지는 index.html과 loginPage 및 loginError입니다.HTTPS에서 폼 기반 로그인이 서버에 연결할 수없는 브라우저 오류로 인해 실패합니다.

현재 홈페이지는 index.html입니다. Actions/home.html에 대한 하이퍼 링크가 있습니다. 내가 원하는 것은 하이퍼 링크가 loginPage.html로 먼저 리다이렉트 한 다음 사용자가 로그인하면 home.html으로 이동하는 것입니다. 나의 이해는 home.html이 제한된 자원이기 때문에 이것은 자동적으로 일어난다. 그러나 대신 로그인 페이지로 리디렉션되지 않으며 브라우저에 페이지에 연결할 수 없다는 오류가 표시됩니다. 상단의 URL은 https://localhost:8443/myProject/Actions/home.htmlhttps://localhost:8443/myProject/index.html입니다.

여러 튜토리얼을 살펴 봤지만 파일 위치를 포함하여 완전한 예제를 지정하지 않았습니다. 도움말 크게 감사하겠습니다. 아, 그래, 궁금해하는 사람이 있다면 tomcat-users.xml 파일을 적절하게 업데이트했다. 당신이 HTTPS을 사용하고 싶습니다 때마다

<welcome-file-list> 
    <welcome-file>/index.html</welcome-file> 
</welcome-file-list> 
<security-role><role-name>Admin</role-name></security-role> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/loginPage.html</form-login-page> 
     <form-error-page>/loginError.html</form-error-page> 
    </form-login-config> 
</login-config> 
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>AllResources</web-resource-name> 
     <url-pattern>/Actions/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Admin</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
+0

어떤 브라우저를 사용하고 있습니까? 정확한 * 오류 메시지 란 무엇입니까? http : //는'index.html'에 대해 작동합니까? 이는 SSL이 컨테이너에 구성되지 않은 것처럼 들립니다. – BalusC

+0

Chrome을 사용하여 "Google 크롬의 localhost 연결 시도가 거부되었습니다. 웹 사이트가 다운되었거나 네트워크가 제대로 구성되지 않았을 수 있습니다." 하지만 Tomcat이 SSL 용으로 구성되었다고 생각했습니다. 직접 /Actions/home.html로 이동하면 똑같은 오류가 발생합니다. – joseph

+0

http : // localhost : 8080/myServlet/또는 http : // localhost : 8080/myServlet/index.html을 입력하면 오른쪽 페이지로 이동하지만 맨 위의 URL은 http : // – joseph

답변

0

당신은 configure Tomcat to use SSL 첫번째로해야합니다. 그렇지 않으면 <transport-guarantee>CONFIDENTIAL</transport-guarantee> 항목을 제거하고 https:// 대신 http://을 가리 키도록 HTML/JSP 파일의 모든 링크를 수정해야합니다.

+0

흠, 배포 할 컴퓨터가 SSL로 구성되었는지는 확실하지 않습니다. 또한 기밀 보장 없이는 폼 기반 로그인을 사용하는 것이 안전하지 않다는 인상을 받고 있습니다. 다시 기본으로 전환해야합니까? – joseph

+0

일반적으로 컨테이너는 기본적으로 SSL 용으로 구성되지 않습니다. 관리자가 제공 한 인증서 키 스토어 파일이 필요합니다. 내 답변에서 HOWTO 링크를 참조하십시오. HTTP 기본 인증은 폼 기반 인증보다 안전하지 않습니다. 차이점은 HTML 페이지가 아닌 브라우저가 내장 된 팝업 대화 상자를 통해 인증이 이루어지는 것입니다. 사용자가 모든 것을 제어 할 수 있습니다. 실제로 보안에 차이가 나는 SSL입니다. 모든 데이터는 네트워크를 통해 암호화 된 상태로 전송됩니다. – BalusC

+0

전송 보증이 제공되지 않으면 양식이 전혀 암호화되지 않지만 기본은 base64로 암호화되지 않습니까? – joseph

관련 문제