httpd / mod_auth_form保留&身份验证后重定向传入的uri

时间:2017-08-05 16:09:13

标签: apache redirect uri preserve mod-auth-form

我被这个问题阻止了:

  

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

  

问题:

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

那么有没有办法在apache httpd中保存传入请求,并且在身份验证之后只需使用mod_jk重定向到tomcat。

1 个答案:

答案 0 :(得分: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,并且当用户单击登录按钮时,如果身份验证成功,则将授予该用户访问资源的权限。

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