0

我被这个问题阻止了:

处理:Apache httpd、Tomcat、mod_auth_form 和 mod_jk。


问题:

当前使用 mod_auth_form 在 apache httpd 中加载登录页面进行身份验证。等重定向到登录页面,传入的 uri 丢失了。成功验证后,我必须使用以前的 uri 重定向到托管在 tomcat 中的 webapp,因为 webapp 需要处理信息。


那么有什么方法可以将传入的请求保存在 apache httpd 中,并且在身份验证后只需使用 mod_jk 重定向到 tomcat ??。

4

1 回答 1

0

这可以通过 Apache httpd 使用内联登录流程的技巧来实现。

基本上,当用户尝试访问受保护的资源时,httpd 会在同一页面内向他显示登录表单(配置为错误文档),而不会将用户重定向到登录页面。

基本内联示例

AuthFormProvider file
ErrorDocument 401 "/login.shtml"
AuthUserFile "conf/passwd"
AuthType form
AuthName realm
AuthFormLoginRequiredLocation "http://example.com/login.html"
Session On
SessionCookieName session path=/

示例内联登录表单

<form method="POST" action="">
  Username: <input type="text" name="httpd_username" value="" />
  Password: <input type="password" name="httpd_password" value="" />
  <input type="submit" name="login" value="Login" />
</form>

参考 - https://httpd.apache.org/docs/2.4/mod/mod_auth_form.html(内联登录)

这将有助于保留传入的 URI,并且当用户单击登录按钮时,如果身份验证成功,则将授予用户访问资源的权限。

因此,这将避免页面重定向到登录页面,从而保留页面状态和内容。

于 2019-09-25T17:59:45.910 回答