0

我想在我的所有网址中添加以下前缀

/login 现在应该是 /springmvc/login

需要做出哪些改变。我添加以下但没有用。我还尝试更新以下所有内容,但有时登录页面可以正常工作,但主要返回“登录”的结果页面不起作用

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
    <property name="pathPrefix" value="springmvc" />
    <property name="caseSensitive" value="false" />
</bean>

我已经更新了我的控制器如下

@RequestMapping("/springmvc")
public class LoginController {

我的 web.xml 如下,我没有更新那些

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我的spring security相关代码如下

<http access-decision-manager-ref="accessDecisionManager" auto-config="true">
    <intercept-url pattern="/welcome*" access="ADMIN" />
    <form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
    <logout logout-success-url="/logout" />
</http>
4

1 回答 1

0

我将首先将“/springmvc”添加到您的调度程序 servlet 的映射中。

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/springmvc/*</url-pattern>
</servlet-mapping>

这应该为您的控制器提供一个通用前缀。您可能需要单独调整 spring 安全性才能使登录/注销链接正常工作。例如

<http access-decision-manager-ref="accessDecisionManager" auto-config="true">
    <intercept-url pattern="/springmvc//welcome*" access="ADMIN" />
    <form-login login-page="/springmvc/login" default-target-url="/springmvc/welcome"
        authentication-failure-url="/springmvc/loginfailed" />
    <logout logout-success-url="/springmvc/logout" />
</http>

ControllerClassNameHandlerMapping 类用于设置“约定优于配置”映射。换句话说,路径是从类/包名称派生的,这意味着您根本不需要 @RequestMapping 注释。

于 2013-09-22T19:59:58.513 回答