2014-10-17 2 views
0

XML 응용 프로그램을 프로그래밍 한 경험이 있지만 웹 응용 프로그램이 전혀 없으므로 xml은 비교적 새로운 기능입니다. 나는 내 연구에서 많은 것을 배웠지 만, 나는 현재 곤란을 겪고 있으며 잘하면 너희 모두가 나를 도울 수있다.양식 기반 인증

컨텍스트 : 내가 일하는 회사는 계약자를 고용하여 인벤토리 용 소프트웨어를 개발했습니다. 개발자는 회사의 인트라넷에 인터넷 응용 프로그램을 만들지 않았습니다 (인터넷에 연결되어 있지 않음). 몇 달 동안 그리고 몇 가지 수정이 있었지만 개발자는 알 수없는 이유로 프로젝트 작업을 그만 두었습니다 (최소한 나에게). 그래서 여기에서 .war 파일을 사용하여 엔지니어를 리버스 (reverse engineer) 한 다음 프로젝트를 마칩니다.

Netbeans에 따라 Tomcat 및 MS SQL Server를 구성했으며 모든 연결이 양호합니다. 앱을 배포 할 수 있지만 여기에 내가 붙어 있습니다. index.jsp는 login.jsp를 포함합니다. 이 페이지의 코드를 보면 혼란 스럽다.

내가 알 수있는 것처럼 개발자는 로그인시 사용자 역할을 결정할 수 있도록 폼 기반 인증을 사용하고있었습니다. 특히, 로그인이 좋은지 나쁜지 응용 프로그램 무엇

<form method="POST" action='<%= response.encodeURL("j_security_check") %>' > 
    <table border="0" cellspacing="5"> 
    <tr> 
     <td> 
      Username:<br> 
      <input type="text" name="j_username" style="width: 200px;"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Password:<br> 
      <input type="password" name="j_password" style="width: 200px;"> 
     </td> 
    </tr> 
    <tr> 
     <td><br></br><input type="submit" value="Log In" class="buttonStyle"> <input type="reset" class="buttonStyle"></td> 
    </tr> 
    </table> 
</form> 

이다 알려줍니다

이 :이 코드는 전혀 페이지로 리디렉션 어떻게 훨씬 덜 아무것도 않는, 이해하지? 버튼을 클릭했을 때 이벤트를 처리하는 것은 무엇입니까?

양해 해 주셔서 감사합니다.

+0

실제로는 일종의 표준입니다. 따라서 나쁘지 않습니다. – Leo

+0

참조 http://docs.oracle.com/javaee/6/tutorial/doc/bncbx.html – Leo

+0

참조 http://www.coderanch.com/t/366059/Servlets/java/encodeURL-purpose-place – cozla

답변

0

Java Servlet Specification, 특히 13.6.3 절을 읽으십시오. 스펙을 읽는 것은 무서운 것처럼 들리지만 자바 서블릿 스펙은 내가 읽은 것 중 가장 읽기 쉬운 것 중 하나입니다. 그것은 변호사가 아닌 프로그래머가 읽을 수 있도록 만들어졌습니다.

요약하면 사용자가 보호 된 페이지에 액세스하려고하면 (그리고 아직 인증되지 않은 경우) 로그인 페이지가 표시됩니다. "제출"버튼은 인증을 수행하고 (사용자 이름/비밀번호를 확인하는) 서블릿 컨테이너 (Tomcat)에 사용자 이름과 비밀번호를 게시하고 사용자 이름/비밀번호가 틀린 경우 로그인 페이지로 돌아가거나 사용자를 다시 리디렉션합니다 원래 요청한 보호 페이지로 이동합니다.

컨테이너 (Tomcat)가 처리하기 때문에 분명하지 않은 일들이 여기에 있습니다. 스펙을 읽으면 모든 것이 실제로 작동하는 방법에 대한 훌륭한 통찰력을 얻을 수 있으며 상속 한 코드를 더 잘 보살 피는 데 더 많은 준비를 할 수 있습니다.

는 업데이트 2014년 10월 22일 동부 서머 타임 13시 45분

수행되는 인증 유형을 확인하려면, 당신은 Tomcat의 웹 응용 프로그램 'META-INF/context.xml 파일에 <Realm> 요소 볼 필요가, 또는 conf/server.xml, 웹 응용 프로그램의 <Context> 요소 안에 중첩되어 있습니다. 사용되는 영역의 유형을 나타냅니다 (보통 "메모리"는 conf/tomcat-users.xml 또는 DataSource/JDBC으로, 인증 정보가 관계형 데이터베이스에 있음을 나타냄).

"영역"의 모든 내용이 사양에서 다루어지지 않습니다. 이를 위해서는 Tomcat 설명서를 참조하거나 Tomcat 사용자 목록과 커뮤니티에 일반적으로 참여해야합니다.

+0

확인 도와 주셔서 감사합니다.나는 원래 개발자가 원래의 사용자 이름과 암호를 어떻게 설정했는지 확신 할 수 없지만 지금은 다소 이해하고있다. tomcat-users.xml 파일을 편집하여 더 추가하려고 시도했지만 관리자로 구성된 관리자 외에는 로그인 할 수 없습니다. –

+0

흥미 롭습니다 ...'context.xml' 파일에서 영역은 LDAP를 사용하여 JNDI로 지정되지만 모두 주석 처리됩니다. 서버의 이름과 모든 것을 볼 수 있지만 분명히 사용되지는 않습니다. 주석으로, 파일은 본질적으로 비어 있습니다. –

+0

해당 위치의 * any *에 구성된 ''을 찾으십시오. 영역이 구성되어 있지 않으면 사용자 이름/암호 조합이 전혀 작동하지 않습니다. –