仅将JSP/Servlet访问访问特定用户
-
01-10-2019 - |
题
我正在开发一个网络应用程序。我想让一些朋友看到它,而不是其他偶然发现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文件或数据库甚至自定义位置验证用户名/密码组合。
其他提示
您应该考虑使用HTACCESS使用简单的身份验证
看 http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/
不隶属于 StackOverflow