java - 春季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";
}
解决方案
您需要对 HttpSecurity 进行更多配置:defaultSuccessUrl
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/showMyLoginPage")
.loginProcessingUrl("/authenticateTheUser")
.defaultSuccessUrl("/", true)
.permitAll();
}
推荐阅读
- amazon-web-services - 当公共 VPC 只有 Fargate 容器时,在私有 VPC 中达到 RDS
- android - RXBle 开始扫描不适用于 Android 10(华为 P30)
- javascript - 未捕获(承诺中)错误:第 1 行有 42 列,但必须有 2
- scala - Scala - 如何避免对象工厂的 if/else 条件
- sql - SQL Server Pivot/Map 列值到行
- asp.net-core - 为什么在将我的项目移动到新机器时需要安装 EntityFrameworkCore nuget 包?
- android - TextInputLayout 以编程方式更改 boxStrokeColor
- c - 分段故障铿锵
- java - 倒数计时器似乎在后台运行,即使我在方向更改后暂停它(纵向到横向,反之亦然)
- jquery - 为什么 jQuery 选择器 "$("*").not" 不起作用?