Domanda

sto sviluppando una web app. Mi piacerebbe essere in grado di lasciare alcuni amici lo vedono, ma non altri che inciampare su l'url. Stavo per mettere una pagina di destinazione e quindi una semplice scatola password. Una volta inserita la password corretta, avevo appena lo registro nella sessione ed esporre il sito come di consueto per il resto del tempo mantengono l'aperta del browser.

C'è un modo standard per fare questo? Sarei l'aggiunta di codice aggiuntivo per il mio webapp per sostenere questo, non sono sicuro se c'è un built-in modo di farlo già (sto usando servlet Java).

Grazie

È stato utile?

Soluzione

È possibile utilizzare contenitore di autenticazione gestito utilizzando descrittori di deployment . Questo non richiede alcun codice aggiuntivo nel vostro lato si aspettano di un semplice form di login con un campo di input e una password, che sottopone alla j_security_check URL. Ecco un esempio di base:

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

Supponendo che hai pagine private in una cartella denominata /private e la pagina di accesso di cui sopra si trova nel /private/login.jsp, quindi aggiungere le seguenti voci al web.xml della 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>

Poi, nel servletcontainer che si sta utilizzando è necessario configurare un cosiddetto Realm per Private. Dal momento che è chiaro quale servletcontainer si sta utilizzando, ecco un documento Tomcat 8.0 mirato: Realm Configurazione HOW-TO . È possibile configurarlo per verificare la combinazione username / password nei confronti di un file XML o un database o anche un percorso personalizzato.


Un completamente diverso alternativa è quella di homegrow un meccanismo di login con l'aiuto di un Filter che verifica la presenza del utente connesso nello scope di sessione. Vedere questo e questa risposta come raggiungere questo obiettivo.

Altri suggerimenti

Si dovrebbe pensare di utilizzare l'autenticazione semplice usando .htaccess

http://www.elated.com / articoli / proteggere con password-your-pagine-con-.htaccess /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top