Question

Je développe une application web. Je voudrais être en mesure de laisser quelques amis voir, mais pas d'autres qui tombent par hasard sur l'url. J'allais mettre une page de destination, puis une boîte de mot de passe simple. Une fois le mot de passe est entré, je venais de l'enregistrer dans la session et exposer le site comme d'habitude pour le reste du temps, ils gardent l'ouverture du navigateur.

Yat-il un moyen standard pour le faire? Je serais ajouter du code supplémentaire à mon webapp pour soutenir cela, je ne sais pas s'il y a un intégré façon de le faire déjà (j'utilise servlets java).

Merci

Était-ce utile?

La solution

Vous pouvez utiliser conteneur d'authentification géré à l'aide des descripteurs de déploiement . Cela ne nécessite aucun code supplémentaire dans votre côté peut attendre d'un formulaire de connexion simple avec un champ de saisie et mot de passe qui se soumet à la j_security_check URL. Voici un exemple de base:

<form action="j_security_check" method="post">
    <input type="text" name="j_username">
    <input type="password" name="j_password">
    <input type="submit">
</form>

En supposant que vous avez des pages privées dans un dossier nommé /private et la page de connexion ci-dessus se trouve dans /private/login.jsp, puis ajoutez les entrées suivantes au web.xml du webapp:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Private</web-resource-name>
        <url-pattern>/private/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>friends</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Private</realm-name>
    <form-login-config>
        <form-login-page>/private/login.jsp</form-login-page>
        <form-error-page>/private/error.jsp</form-error-page>
    </form-login-config>
</login-config>

Ensuite, dans le servletcontainer que vous utilisez, vous devez configurer un soi-disant Domaine pour Private. Comme il est difficile de savoir qui servletcontainer que vous utilisez, voici un document ciblé Tomcat 8.0: Configuration Realm HOW-TO . Vous pouvez le configurer pour vérifier le nom d'utilisateur / mot de passe combo contre un fichier XML ou une base de données ou même un emplacement personnalisé.


Une alternative est complètement différent de homegrow un mécanisme de connexion à l'aide d'un Filter qui vérifie la présence de l'utilisateur connecté à la portée de session. Voir cette et cette réponse comment y parvenir.

Autres conseils

Vous devriez penser à utiliser l'authentification simple en utilisant .htaccess

Voir http://www.elated.com / articles / mot de passe-protection-vos-pages avec-htaccess /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top