我正在开发一个网络应用程序.我希望能够让一些朋友看到它,但不能让其他人偶然发现这个网址.我要打开一个登陆页面,然后是一个简单的密码框.输入正确的密码后,我只会将其记录在会
有没有标准的方法来做到这一点?我将为我的webapp添加额外的代码以支持这一点,我不确定是否有内置的方法来实现它(我正在使用java servlet).
谢谢
您可以使用 container managed authentication using deployment descriptors.这不需要额外的代码,您需要一个简单的登录表单,其中包含输入和密码字段,该字段提交到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中,您需要配置一个所谓的Realm for Private.由于不清楚您正在使用哪个servlet容器,因此这是一个Tomcat 8.0目标文档:Realm Configuration HOW-TO.您可以将其配置为针对XML文件或数据库甚至自定义位置验证用户名/密码组合.
一种完全不同的替代方法是在过滤器的帮助下生成登录机制,该过滤器检查会话范围中登录用户的存在.见this和this回答如何实现这一点.