【发布时间】:2015-12-03 08:40:16
【问题描述】:
我使用 Spring、Hibernate、tiles、Spring security 创建了一个应用程序。
有些页面无需登录即可访问。有些页面只能在登录后访问(即角色为“ROLE_USER”的用户)。 “帐户设置”是登录后可以访问的页面。当我在未登录的情况下点击帐户设置网址时。它直接带我进入登录屏幕。登录后,它会将我重定向到帐户设置页面。这是预期的行为。但我面临的问题是当我第二次尝试点击“帐户设置”链接时。它在 url 前面添加了一个额外的 /user ,我收到 404 错误。如何防止spring一次又一次地为用户添加前缀。即使我尝试了“重定向”,但它没有帮助。非常感谢您的帮助。
网址
http://localhost:8080/myapp/user/accountSettings(第一次) http://localhost:8080/myapp/user/user/accountSettings(第二次)
spring-security.xml
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/user/**" access="hasRole('ROLE_USER')" />
.....
链接
<a href="user/accountSettings">账户设置</a>控制器类
@RequestMapping("/user/accountSettings")
public ModelAndView accountSettings() {
ModelAndView model = new ModelAndView("accountSettings");
return model;
}
tiles.xml
<definition name="accountSettings" extends="base.definition">
<put-attribute name="title" value="Account Settings" />
<put-attribute name="body" value="/WEB-INF/jsp/accountSettings.jsp" />
</definition>
【问题讨论】:
标签: spring hibernate filter spring-security tiles