我正在开发一个网络应用程序。我想让一些朋友看到它,而不是其他偶然发现URL的朋友。我打算放置一个着陆页,然后放一个简单的密码框。输入正确的密码后,我将在会话中记录下来,并在其余时间保持浏览器打开时照常公开网站。

有标准的方法吗?我将在我的WebApp中添加额外的代码以支持此代码,我不确定是否已经内置了它可以执行此操作(我正在使用Java Servlet)。

谢谢

有帮助吗?

解决方案

您可以使用 使用部署描述符的容器托管身份验证. 。这不需要您一方的额外代码,并希望有一个简单的登录表格,并带有输入和密码字段,该字段提交给URL j_security_check. 。这是一个基本示例:

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

假设您已经在名为的文件夹中 /private 上面的登录页面位于 /private/login.jsp, ,然后将以下条目添加到WebApp的 web.xml:

<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>

然后,在您使用的ServletContainer中,您需要配置所谓的 领域 为了 Private. 。由于尚不清楚您正在使用的是哪个ServletContainer,因此这里有一个Tomcat 8.0针对性文档: 领域配置方法. 。您可以配置它以针对XML文件或数据库甚至自定义位置验证用户名/密码组合。


一个完全不同的选择是借助 Filter 这可以检查会话范围中登录用户的存在。看 回答如何实现这一目标。

其他提示

您应该考虑使用HTACCESS使用简单的身份验证

http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top