java - Tomcat 领域认证 - 登录后

标签 java security tomcat servlets

我使用带有 DataSourceRealm 和 FORM 身份验证的 Tomcat 8 来登录我的 Web 应用程序。身份验证部分工作正常,但我想在成功登录后立即执行代码。我似乎找不到将这段代码放在哪里,因为几乎所有的身份验证都是由 tomcat 处理的。

这是我的 html:

<form method="POST" action="j_security_check">
    <table>
        <tr>
            <td colspan="2">Login Blah blah blah</td>
        </tr>
        <tr>
            <td>Name:</td>
            <td><input type="text" name="j_username" /></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" name="j_password"/ ></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Go" /></td>
        </tr>
    </table>
</form>

和web.xml相关信息:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protected pages</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/jsp/Login.jsp</form-login-page>
        <form-error-page>/jsp/Login.jsp?action=error</form-error-page>
    </form-login-config>
</login-config>

和我的 context.xml

<Realm className="org.apache.catalina.realm.DataSourceRealm"
    digest="MD5"
    allRolesMode="authOnly"
    <!-- sensitive info removed -->  />

我想执行的一些登录后代码示例是检查密码是否过期、更新上次登录时间等...

最佳答案

我不认为它可以用 DataSourceRealm 来完成。这意味着您要么必须编写自己的 Realm 实现,要么忘记使用 Tomcat 来处理登录并编写自己的登录代码。我会选择后者,但这是个人喜好问题。

关于java - Tomcat 领域认证 - 登录后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714682/

相关文章:

java - Android POST 请求到 PHP

wcf - 证书只能被网络服务账户使用,不能被域账户使用

windows - 使用多个具有 80 端口的 tomcat 实例

linux - 哪个用户在 Amazon EC2 上运行 tomcat?

java - relativeLayout背景图片+颜色

java - 如何在 Java 中返回 TreeSet 中的第 k 个元素?

java - 如何在Sqlite中获取每个月的第一条和最后一条记录

ios - 符合 HIPAA 标准的应用程序,使用加密核心数据与核心数据属性加密

php - Android PHP 网络服务安全

tomcat - Apache Tomcat 配置文件,Windows Server 2012,未作为服务运行