首页 > 解决方案 > 春季MVC安全API问题

问题描述

2.5 和 5.2.3 春季安全 API。第 1 步:创建一个类

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
    .anyRequest().authenticated()
.and()
.formLogin()
    .loginPage("/showMyLoginPage")
    .loginProcessingUrl("/authenticateTheUser")
    .permitAll();
}

第 2 步:创建自定义视图

<form:form action="${pageContext.request.contextPath}/authenticateTheUser" method="POST">
    <!-- Check for login error -->

    <p>
        User name: <input type="text" name="username" />
    </p>
    <p>
        Password: <input type="password" name="password" />
    </p>    
    <input type="submit" value="Login" />
</form:form>

在这种情况下,每当我运行代码并登录时,它都会将我重定向到同一个登录页面,因为它应该将我重定向到主视图

@GetMapping("/")
public String getHomeView() {
    return "Home";
}

标签: javaspring-mvcjspspring-security

解决方案


您需要对 HttpSecurity 进行更多配置:defaultSuccessUrl

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().anyRequest().authenticated()
        .and()
        .formLogin()
        .loginPage("/showMyLoginPage")
        .loginProcessingUrl("/authenticateTheUser")
        .defaultSuccessUrl("/", true)
        .permitAll();
}

推荐阅读