我正在与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.zul
与login.zul
位于同一文件夹中。
如果我将/index.zul
设置为&#34; / *&#34;的状态,我也会看到相同的错误。
如何决定另一个网址而不是/*
?
谢谢!
答案 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。