httpd/mod_auth_form 验证后保留传入的 uri 并重定向

httpd/mod_auth_form preserve & redirect with incoming uri after authentication

我被这个问题封锁了:

Dealing with: Apache httpd, Tomcat, mod_auth_form and mod_jk.


issue:

目前正在使用 mod_auth_form 在 apache httpd 中加载登录页面以进行身份​​验证。所以在重定向到登录页面时,传入的 uri 丢失了。身份验证成功后,我必须使用之前的 uri 重定向到 tomcat 中托管的网络应用程序,因为网络应用程序需要处理信息。


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

这可以通过使用 内联登录流程的 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,当用户单击登录按钮时,如果身份验证成功,则用户将被授予访问资源的权限。

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