Je trempe mon orteil dans les eaux troubles de Java et je travaille à travers le PackPub JavaEE 6 Avec Netbeans7 book. L'un des premiers exemples est l'authentification par formulaire qui implique la configuration du descripteur de déploiement (web.xml) avec un rôle de sécurité 'admin' et une contrainte. Il vous guide ensuite dans l'obtention du descripteur Glassfish en attribuant ces rôles à de nouveaux groupes, puis en utilisant la console Glassfish pour créer de nouveaux utilisateurs dans ces groupes. Lorsque j'essaie d'accéder à une page à l'intérieur de cette page protégée, la page de connexion s'affiche comme prévu, mais mon identifiant ne fonctionne pas. Même si je sais que je mets des informations d'identification valides créées dans la console glassfish, je reçois toujours ma page d'erreur de connexion (affichée sur l'URL j_security_check).Java formes auth avec j_security_check et Glassfish
La page de connexion est aussi simple que cela vient:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Log in to view secure content</title>
</head>
<body>
<h1>Log in</h1>
<form action="j_security_check" method="POST">
<table border="0">
<tbody>
<tr>
<td slign="right">Username: </td>
<td><input type="text" name="j_username" value="" /></td>
</tr>
<tr>
<td slign="right">Password: </td>
<td><input type="password" name="j_password" value="" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Login" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
Je n'ai pas configuré quelque chose, et qu'il ya probablement quelque chose de vraiment de base, mais le livre ne permet pas de questions comme celle-ci si demandé si Je pourrais obtenir quelques pointeurs sur où débuter le débogage ou diagnostiquer ce problème.
Mon web.xml est:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<security-constraint>
<display-name>Admin Pages</display-name>
<web-resource-collection>
<web-resource-name>Administrative pages</web-resource-name>
<description/>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>Admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>file</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginerror.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>Administrators</description>
<role-name>Admin</role-name>
</security-role>
<security-role>
<description>public user</description>
<role-name>User</role-name>
</security-role>
</web-app>
GlassFish-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<security-role-mapping>
<role-name>Admin</role-name>
<group-name>Admin</group-name>
</security-role-mapping>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
</glassfish-web-app>
J'ai vérifié deux fois que dans la console Glassfish, je suis d'édition
Configuartions|Security|Realms|file
et que mon nouvel utilisateur a une liste de groupe de 'Admin'
Merci
Avez-vous vérifié le fichier de clé? – Alf
@alf: Non, où est-ce? Je commence juste à ne pas savoir où/comment – LDJ
si vous ne l'avez pas changé dans la console d'administration, son chemin est domain-dir/config/keyfile. Ouvrez-le et vérifiez s'il contient vos utilisateurs. – Alf