Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止Spring一次又一次地添加基本url(Spring安全性)_Spring_Hibernate_Filter_Spring Security_Tiles - Fatal编程技术网

如何防止Spring一次又一次地添加基本url(Spring安全性)

如何防止Spring一次又一次地添加基本url(Spring安全性),spring,hibernate,filter,spring-security,tiles,Spring,Hibernate,Filter,Spring Security,Tiles,我已经使用Spring、Hibernate、tiles和Spring安全性创建了一个应用程序 有些页面无需登录即可访问。还有一些页面只有在登录ini.e之后才能访问。角色为“role\u USER”的用户。帐户设置是登录后可以访问的页面。当我在未登录的情况下点击帐户设置url时。它直接带我到登录屏幕。登录后,它会将我重定向到帐户设置页面。这是预期的行为。但我面临的问题是,当我第二次尝试点击“账户设置”链接时。它在url前面添加了一个额外的/user,我得到了404错误。如何防止spring一次又

我已经使用Spring、Hibernate、tiles和Spring安全性创建了一个应用程序

有些页面无需登录即可访问。还有一些页面只有在登录ini.e之后才能访问。角色为“role\u USER”的用户。帐户设置是登录后可以访问的页面。当我在未登录的情况下点击帐户设置url时。它直接带我到登录屏幕。登录后,它会将我重定向到帐户设置页面。这是预期的行为。但我面临的问题是,当我第二次尝试点击“账户设置”链接时。它在url前面添加了一个额外的/user,我得到了404错误。如何防止spring一次又一次地给用户加前缀。甚至我也试过“重定向”,但没用。非常感谢你的帮助

网址

用户/帐户设置第一次 用户/用户/帐户设置第二次

spring-security.xml

tiles.xml


问题在于HTML链接。你可以试试


与其硬编码上下文路径,不如使用


不过我建议在URL中使用连字符,比如帐户设置

实际上我没有硬编码。我用过这个,但你的解决方案也很有效。在URL中使用连字符有什么用。这是我第一次听到。使用这个有什么好处吗@尼尔·麦圭根
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/user/**" access="hasRole('ROLE_USER')" />
.....
<a href="user/accountSettings">Account Setting</a>
@RequestMapping("/user/accountSettings")
public ModelAndView accountSettings() {
    ModelAndView model = new ModelAndView("accountSettings");
    return model;
}
<definition name="accountSettings" extends="base.definition">
    <put-attribute name="title" value="Account Settings" />
    <put-attribute name="body" value="/WEB-INF/jsp/accountSettings.jsp" />
</definition>