JSP (Java Server Page) - autenticacion basada en formularios, ayuda

 
Vista:

autenticacion basada en formularios, ayuda

Publicado por yeyo (26 intervenciones) el 26/01/2007 17:28:31
tengo una aplicación basada en struts. quiero usar autenticacion basada en formularios. Para ello he seguido los siguientes pasos:

en el archivo web.xml tengo lo siguiente:

...
<security-role>
<role-name>administrador</role-name>
</security-role>

<security-constraint>
<web-resource-collection>
<web-resource-name>Aplicación completa</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>administrador</role-name>
</auth-constraint>
</security-constraint>

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

en login.jsp simplemente pide nombre de usuario y contraseña al iniciar la aplicacion

en el server.xml he puesto:

<Context path="/concesionario-aplicacion" docBase="concesionario- aplicacion" debug="0" reloadable="true">
<Realm className="org.apache.catalina.realm.JDBCRealm"
debug="99" driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost:3306 /concesionario_db"
userTable="empleado" userNameCol="empleado_id"
userCredCol="password" userRoleTable="rol_usuario"
roleNameCol="nombre_rol" />
</Context>

He creado las correspondientes tablas en la base de datos

create table empleado (empleado_id varchar(20) not null primary key,
password varchar(20) not null);

create table rol_usuario (empleado_id varchar(20) not null,
nombre_rol varchar(20) not null,
primary key(empleado_id,nombre_rol));

y he añadido a las tablas unos datos de ejemplo.

Pero al intentar logearme me dirige siempre a la página de error(error.jsp) y eb el fichero de log del tomcat me aparece el error:

GRAVE: Excepción al realizar la autentificación
java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)

Para acceder a la base de datos desde la aplicacion tengo hecha una agrupación de conexiones aunque no creo que eso tenga que ver con esto.

A ver si alguien me puede ayudar, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:autenticacion basada en formularios, ayuda

Publicado por Gonzalo (72 intervenciones) el 26/01/2007 20:56:01
>java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)

El error es de la conexión a la base de datos. Nada que ver con la autentificación ni el formulario.

Estás intentando conectar a la base de datos de mysql://localhost:3306/concesionario_db sin dar la password. La password no la de tu alicación sino la del servidor de base de datos de MySQL. Mira a ver la configuración de la conexión y prueba también a conectarte desde la línea de comandos para ver si va bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar