拦截tomcat上的j_安全检查,以便在struts2中将passion的用户名修改为ldap

xxe27gdn  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(200)

我需要修改登录表单上的用户名,然后才能将其传递给ldap进行身份验证。应用程序是基于struts的。我需要从列表中删除一些字符 j_username 在将其传递到ldap之前。在struts中使用javascript或编写过滤器或拦截器的最佳方式是什么?我们可以在它进入前发出登录请求来过滤吗 j_security_check ?
详情如下: login.jsp :

<form name="loginForm" method="POST" action='<%= response.encodeURL("j_security_check") %>'>
<table>
<tr><td>User Name</td><td><input type="text" name="j_username" size="10" maxlength="30"></td></tr>
<tr><td>Password</td><td><input type="password" name="j_password" size="10" maxlength="30"></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="Login" name="j_security_check"></td></td></tr>
</table>
</form>
``` `web.xml` :
kxe2p93d

kxe2p93d1#

形式动作 j_security_check 在调用任何筛选器之前由服务器处理。所以你不能在struts 2中截取它。
如果需要修改请求传递的某些参数,可以将表单操作设置为struts操作。调用struts操作后,您将在 ActionContext . 您可以编写自定义拦截器并将其添加到操作配置中。
拦截器可以返回一个结果以重定向到 j_security_check 使用已修改的参数。

相关问题