如何更改j_spring_security_check?

时间:2015-03-06 09:07:16

标签: spring zk

我正在与ZK和春天合作。 我下载了2个不同的项目,现在我尝试合并。我的问题出现在这部分代码中:

<html:form action="j_spring_security_check" method="POST" xmlns:html="native">

位于login.zul文件中。我在web.xml中找到了这些行:

<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

我看到如果我用/*更改/login.zul,我的网址就会变成:localhost:8080/myProject/j_spring_security_check,而我看到错误404

如果我没有更改我的网址localhost:8080/myProject/,则网页index.zul会正常工作。

index.zullogin.zul位于同一文件夹中。

如果我将/index.zul设置为&#34; / *&#34;的状态,我也会看到相同的错误。

如何决定另一个网址而不是/*

谢谢!

1 个答案:

答案 0 :(得分:3)

上述网址格式/ *声明您要保护所有网页。它与事实无关,您希望在成功登录后加载哪个页面。

标题也是误导性的,j_spring_security_check只是Spring Security登录表单提交的默认URL:当发出对此URL的请求时,SpringSec将启动其身份验证模块(即用户名/密码检查)。你不想改变它。如果您不想告诉全世界您使用Spring Security,或者您不想更改使用其他操作属性的现有登录表单,则可以更改它。

您可能拥有Spring Security的配置XML,如spring-security.xml或基于Java的等效配置) - 其中包含一个标记。您需要将该标记的default-target-url属性设置为

  

<form-login login-page="/some_dir/login.zul" default-target-url="/some_other_dir/panel.zul"

您应该在网络应用中使用相对网址。

您可能有一个authentication-success-handler-ref而不是default-target-urlin更复杂的情况but you should not mix them