HTTP статус 403 на JDBC Realm Authentication при използване на правилни идентификационни данни (отива на страница за грешка с лоши идентификационни данни)

Опитвам се да получа удостоверяване за сайта си с помощта на JDBC Realms и получавам HTTP статус 403 - Достъпът до искания ресурс е отказан, когато използвам правилни идентификационни данни. Когато използвам неправилни идентификационни данни, той отива на страницата за грешка, както трябва. Мога да направя заявка в базата данни и да получа обратни отговори, така че проблемът не е в java конектора. Освен това, ако променя името на таблицата, получавам грешка, че таблицата не съществува, така че изглежда, че се свързва добре с базата данни и я запитва, защото знае кога потребителското име и паролата са неправилни и ме изпраща на грешка страница. Проблемът е, когато използвам правилно потребителско име/парола. Използвам tomcat 7.0.61. Надяваме се, че има достатъчно информация, за да разберем какво не е наред.

Моята база данни се нарича brew4me.

Таблицата с лица има атрибутите:

| email|name|city |password|state_providence|country|

Таблицата user_roles има атрибутите:

|email|role_name|

Примерен ред за таблицата user_roles би бил

[email protected]|user

Също имейл=имейл за таблиците.

My Realm във файла server.xml:

<Realm className="org.apache.catalina.realm.JDBCRealm" 
          connectionURL="jdbc:mysql://localhost:3306/brew4me" 
          connectionName="root" connectionPassword="#cs564brew4me"
          driverName="com.mysql.jdbc.Driver" 
          roleNameCol="email" 
          userCredCol="password" 
          userNameCol="email" 
          userRoleTable="user_roles" 
          userTable="person"/>

Моите конфигурации в web.xml:

<security-role>
    <role-name>user</role-name>
</security-role>

<security-constraint>
    <display-name>HomepageConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>brew4me</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
    <user-data-constraint>
        <!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/error.html</form-error-page>
    </form-login-config>
</login-config>

Ето кода за моята страница за вход:

<form method=post action="j_security_check" >
    Email:<input type="text"  name= "j_username" >
    Password:<input type="password"  name= "j_password" >
    <input type="submit" value="Login">
</form>

Конзолен изход, ако може да е полезен:

 Apr 28, 2015 12:05:18 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:brew4me' did not find a matching property.
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.61
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Mar 27 2015 12:03:56 UTC
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         7.0.61.0
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 7
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.1
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_40
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_40-b26
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\apache-tomcat-7.0.61
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\apache-tomcat-7.0.61
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\apache-tomcat-7.0.61
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\apache-tomcat-7.0.61
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\apache-tomcat-7.0.61\wtpwebapps
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\apache-tomcat-7.0.61\endorsed
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Apr 28, 2015 12:05:18 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_40\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_40/bin/server;C:/Program Files/Java/jre1.8.0_40/bin;C:/Program Files/Java/jre1.8.0_40/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Ulead Systems\MPEG;C:\SWTOOLS\ReadyApps;C:\Program Files (x86)\Common Files\Lenovo;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;C:\Modeltech_pe_edu_10.3c\win32pe_edu;C:\Program Files (x86)\Google\google_appengine\;C:\eclipse;;.
Apr 28, 2015 12:05:18 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Apr 28, 2015 12:05:18 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 28, 2015 12:05:18 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1203 ms
Apr 28, 2015 12:05:18 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 28, 2015 12:05:18 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.61
Apr 28, 2015 12:05:20 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [193] milliseconds.
Apr 28, 2015 12:05:20 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.61\webapps\docs
Apr 28, 2015 12:05:20 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\apache-tomcat-7.0.61\webapps\docs has finished in 264 ms
Apr 28, 2015 12:05:20 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.61\webapps\examples
Apr 28, 2015 12:05:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Apr 28, 2015 12:05:21 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Apr 28, 2015 12:05:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@115992e1')
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\apache-tomcat-7.0.61\webapps\examples has finished in 744 ms
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.61\webapps\host-manager
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\apache-tomcat-7.0.61\webapps\host-manager has finished in 217 ms
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.61\webapps\manager
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\apache-tomcat-7.0.61\webapps\manager has finished in 223 ms
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.61\webapps\ROOT
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\apache-tomcat-7.0.61\webapps\ROOT has finished in 133 ms
Apr 28, 2015 12:05:21 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Apr 28, 2015 12:05:21 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Apr 28, 2015 12:05:21 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3331 ms

person Matt Nicol    schedule 28.04.2015    source източник


Отговори (1)


Във вашия Realm сте дефинирали грешно стойността roleNameCol.

Опитайте да го зададете на roleNameCol="role_name"

person MaVRoSCy    schedule 28.04.2015
comment
Благодаря ти! Това реши проблема. Предполагам, че не разбрах напълно какъв е атрибутът. Просто се радвам, че беше малка грешка от моя страна. - person Matt Nicol; 28.04.2015
comment
радвам се, че мога да помогна... така че ако намерите отговор за полезен, добре е да гласувате за него и да го приемете, така че други хора със същия проблем да могат да намерят отговор лесно - person MaVRoSCy; 28.04.2015
comment
Току-що създадох акаунта си, защото това беше първият проблем, който не можах да реша, като просто го потърсих в Google, така че нямам достатъчно репутация, за да гласувам за вас, опитах! Когато имам достатъчно, ще се върна! - person Matt Nicol; 28.04.2015
comment
Мисля, че можете да го маркирате като приет отговор, като щракнете върху отметката (v) отляво на отговора - person MaVRoSCy; 28.04.2015