2013-04-09 3 views
0

Я пытаюсь научить себя сервлетам Java и JSP, и у меня возникла проблема с аутентификацией с Tomcat 7 и Postgres 9.1.Устранение неполадок в примере аутентификации JDBC/Postgres

Это кажется ошибкой (Tomcat не вызывает ошибок JAVA в своем файле журнала) и работает, однако ему что-то не хватает, потому что он никогда не позволяет мне аутентифицироваться. Почти как имя пользователя и пароль не соответствуют тем, что находится в моих табличных пространствах в postgres.

Есть ли способ ввести дополнительную запись в мой код, чтобы я мог видеть, что запрашивается и что возвращается, и почему существует несоответствие. Это, безусловно, поможет моим усилиям по устранению неполадок.

Для вашей информации я прилагаю мой context.xml (META_INF), web.xml (WEB_INF) и мой логин HTML)

Я ценю вашу помощь

<?xml version="1.0" encoding="UTF-8"?> 

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5"> 

    <!-- Define two security roles --> 
    <security-role> 
     <description>customer service testers</description> 
     <role-name>testing</role-name> 
    </security-role> 
    <security-role> 
     <description>system developers</description> 
     <role-name>developer</role-name> 
    </security-role> 

    <!-- Restrict access to all files in the /admin folder --> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Protected Area</web-resource-name> 
      <url-pattern>/admin/*</url-pattern> 
     </web-resource-collection> 
     <!-- Authorize the programmer and service roles --> 
     <auth-constraint> 
      <role-name>developer</role-name> 
      <role-name>testing</role-name> 
     </auth-constraint> 
    </security-constraint> 

    <!-- Use form-based authentication --> 
    <!--<login-config> 
     <auth-method>FORM</auth-method> 
     <form-login-config> 
      <form-login-page>/admin/login.html</form-login-page> 
      <form-error-page>/admin/login_error.html</form-error-page> 
     </form-login-config> 
    </login-config> 
    --> 

    <!-- Use basic authentication --> 

    <login-config> 
     <auth-method>BASIC</auth-method> 
     <realm-name>Admin Login</realm-name> 
    </login-config> 


    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 



<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/AUTHExample"> 
    <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" 
      driverName="org.postgresql.Driver" 
      connectionURL="jdbc:postgresql://localhost:5432/mydb" 
      connectionName="postgres" connectionPassword="postgres" 
      userTable="userpass" userNameCol="user" userCredCol="passwd" 
      userRoleTable="userrole" roleNameCol="rolename" 
      /> 

</Context> 




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title>Learning to Authenticate</title> 
</head> 

<body> 
<h1>Admin Login Form</h1> 
<p>Please enter your username and password to continue.</p> 
<table cellspacing="5" border="0"> 
    <form action="j_security_check" method="get"> 
    <tr> 
     <td align="right">Username</td> 
     <td><input type="text" name="j_username"></td> 
    </tr> 
    <tr> 
     <td align="right">Password</td> 
     <td><input type="password" name="j_password"></td> 
    </tr> 
    <tr> 
     <td><input type="submit" value="Login"></td> 
    </tr> 
    </form> 
</table> 
</body> 
</html> 
+0

Почему вы тестирования обычной проверки подлинности с помощью формы авторизации? – Perception

+0

, вы увидите, что проверка подлинности формы закомментирована, я перебирал между ними. Кажется, он не менял никакой функциональной разницы. – user2263513

+0

Да, конечно, я заметил. Но вы включили HTML-страницу с формой в нее. Это актуально только при проверке подлинности на основе форм. Как вы тестируете базовую аутентификацию? – Perception

ответ

0

Итак, я решил свою проблема и рассмотрение того, как часто это кажется на первый взгляд, я думал, что отвечу на него для будущих людей, которые наткнулись на него.

Проблема, с которой я столкнулась, связана с разными именами столбцов для имени пользователя в таблице пользователя/пароля и в таблице ролей. SQL назначил его «пользователем» вместо пользователя.

Обратите внимание, что если роль не определена правильно в файле web.xml, ошибка 403 отображается, когда имя пользователя и пароль верны.

Надежда, которая была помощь

Спасибо

Смежные вопросы