我被这个问题阻止了:
处理:Apache httpd,Tomcat,mod_auth_form和mod_jk。
问题:
目前正在使用mod_auth_form在apache httpd中加载登录页面进行身份验证。所以在重定向到登录页面时,传入的uri会丢失。在成功验证后,我必须使用之前的uri重定向到tomcat中托管的webapp,bcoz webapp需要处理信息。
那么有没有办法在apache httpd中保存传入请求,并且在身份验证之后只需使用mod_jk重定向到tomcat。
答案 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,并且当用户单击登录按钮时,如果身份验证成功,则将授予该用户访问资源的权限。
因此,这将避免页面重定向到登录页面,从而保留页面状态和内容。