当前位置: 首页 > 面试题库 >

基于表单的身份验证

江飞章
2023-03-14
问题内容

我有编程Java应用程序的经验,但是从来没有任何Web应用程序,因此xml对我而言相对较新。我在研究中学到了很多东西,但是目前我很困惑,希望大家能帮助我。

背景信息:我工作的公司聘请了承包商来开发库存软件。开发人员选择在公司的Intranet上创建一个Web应用程序(根本不连接到Internet)。几个月后,经过了几次修改,开发人员出于未知原因(至少对我而言)退出了该项目。因此,这里我使用.war文件进行反向工程,然后完成项目!

根据Netbeans,我已经配置了Tomcat和MS SQL
Server,并且所有连接都很好。我可以部署该应用程序,但是这是我遇到的困难。index.jsp包含一个login.jsp。查看这些页面的代码让我感到困惑。

尽我所知,开发人员正在使用基于表单的身份验证,以便在登录时确定用户角色。我完全不了解这段代码如何重定向到任何页面,更不用说什么了:

<form method="POST" action='<%= response.encodeURL("j_security_check") %>' >
    <table border="0" cellspacing="5">
    <tr>
        <td>
            Username:<br>
            <input type="text" name="j_username" style="width: 200px;">
        </td>
    </tr>
    <tr>
        <td>
            Password:<br>
            <input type="password" name="j_password" style="width: 200px;">
        </td>
    </tr>
    <tr>
        <td><br></br><input type="submit" value="Log In" class="buttonStyle"> <input type="reset" class="buttonStyle"></td>
    </tr>
    </table>
</form>

具体来说,是什么告诉应用程序登录好坏?单击按钮时由什么处理事件?

感谢您的耐心配合和帮助!


问题答案:

通读Java
Servlet规范
,特别是第13.6.3节。读规范听起来很吓人,但是Java
Servlet规范是我读过的最易读的书之一:它是由程序员而非律师阅读的。

快速摘要是,当用户尝试访问受保护的页面(尚未经过身份验证)时,将向他们显示登录页面。“提交”按钮将用户名和密码发布到执行身份验证(检查用户名/密码)的servlet容器(Tomcat),然后返回登录页面(如果用户名/密码不正确)或将用户重定向回到他们最初请求的受保护页面。

这里发生的事情并不明显,因为容器(Tomcat)正在为您处理它。阅读规范(实际上是整个过程)将使您对一切工作原理有深刻的了解,并使您更好地准备接受已继承的代码。

EDT更新2014-10-22 13:45

要确定执行的身份验证类型,您需要<Realm>在Web应用程序的META- INF/context.xml文件中或conf/server.xml嵌套在Web应用程序的<Context>元素内的Tomcat的元素中查找一个元素。它将指示正在使用的领域的类型(通常为的“内存”
conf/tomcat-users.xml,或DataSource/ JDBC指示认证信息在关系数据库中,等等)。

规范不涵盖“领域”内容。为此,您必须参考Tomcat文档,或一般地加入Tomcat用户列表和社区。



 类似资料:
  • 我正在Spring Boot应用程序中学习Spring Security性,我试图了解默认情况下使用Spring Security性的身份验证方式。我知道Spring Security默认情况下使用基于表单的身份验证,但我使用基本身份验证对Postman进行了测试,结果正常。 我有一个非常简单的Spring Boot应用程序。 Rest控制器: 我在pom中添加了Spring Security依赖

  • 所以我正忙着为twitter开发一个应用程序,我希望人们使用PIN进行身份验证。(https://dev.twitter.com/oauth/pin-based). 要向人们显示PIN码,我需要使用以下命令:https://dev.twitter.com/oauth/reference/get/oauth/authorize 那里的例子说:https://api.twitter.com/oauth

  • 我正在尝试为自己构建一个仪表板,为我使用的一些应用程序提供基于SAML的身份验证。 从我作为测试平台构建的: 我正在使用一个登录名作为我要使用的应用程序的身份提供者。 举个例子:对于Netflix,我被重新路由到Netflix页面,我的用户ID和密码被预先填入其中,就像密码管理器的工作方式一样。(它使用OneLogin的扩展名) Netflix是否允许基于SAML的单点登录身份验证?我无法从谷歌搜

  • 我所期望的是:当用户从表单登录时,它可以调用restful服务,而无需经过基本身份验证(因为它已经经过身份验证)。我的想法是,角色为'role_user'的用户也应该调用restful服务。但是,当我从表单登录后,我也被提示进行基本身份验证,试图从浏览器调用restful服务。 有没有得到我所期望的?

  • 问题内容: 我正在尝试为不同的URL模式定义两种不同的安全配置,其中一种使用表单登录,另一种使用对api的基本身份验证。 我正在寻找的解决方案与此处说明的解决方案类似,网址为http://meera- subbarao.blogspot.co.uk/2010/11/spring-security-combining-basic- and.html, 但我想这样做使用Java配置。 提前致谢。 这是

  • 本文向大家介绍基于javascript简单实现对身份证校验,包括了基于javascript简单实现对身份证校验的使用技巧和注意事项,需要的朋友参考一下 本文实例介绍了javascript简单实现对身份证的校验的关键性代码,分享给大家供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家实现javascript身份证校验有所帮助。

  • 我有一个具有两个组件的服务器应用程序:a)一组使用oAuth(Spring security oAuth)保护的REST API,b)一个用于基于角色UI的管理的仪表板 出于业务原因,这两个组件需要共同托管,即作为单个WAR部署。到目前为止,我们的REST API只有oAuth,一切都很好。当我们试图对仪表板使用基于表单的身份验证时,问题就开始了。现在,当我们在没有oAuth令牌的情况下访问RES

  • 我有一个安全约束,它覆盖了我的web应用程序中的一些页面。身份验证是用JAAS和form进行的,它工作得很好。(我已经成功实现了我的LoginModule)。 但是,我需要通过servlet进行另一种身份验证。 但当浏览器试图获取受保护的页面时,app服务器会返回到登录页面。 我错过了什么?有可能在js重定向时会丢失会话cookie?或者,问题是否可能是我试图(通过重定向)从一个不受保护的资源访问