要使用Spring Security实现登录限制,您需要遵循以下步骤:
在Maven项目中,将以下依赖项添加到pom.xml文件中:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
在您的Spring Boot项目中,创建一个名为SecurityConfig
的新Java类,并继承WebSecurityConfigurerAdapter
。然后覆盖configure
方法以配置登录限制。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login*").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.loginProcessingUrl("/perform_login")
.defaultSuccessURL("/", true)
.failureUrl("/login?error=true")
.and()
.logout()
.logoutUrl("/perform_logout")
.deleteCookies("JSESSIONID");
}
}
创建一个名为LoginController
的新Java类,并创建一个处理登录请求的login
方法。
@Controller
public class LoginController {
@GetMapping("/login")
public String loginPage() {
return "login";
}
@PostMapping("/perform_login")
public String performLogin(HttpServletRequest request, HttpSession session) {
// 在此处实现您的登录逻辑
}
@GetMapping("/perform_logout")
public String performLogout(HttpServletRequest request, HttpSession session) {
session.invalidate();
return "redirect:/login";
}
}
在src/main/resources/templates
目录下创建一个名为login.html
的新文件,并添加以下内容:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login</h1>
<form th:action="@{/perform_login}" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required autofocus />
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required />
</div>
<div>
<input type="submit" value="Log in" />
</div>
</form>
</body>
</html>
现在,您已经成功配置了Spring Security,并实现了登录限制。用户在访问受限制的页面之前需要登录,并且可以正常登录后访问受限制的页面。
领取专属 10元无门槛券
手把手带您无忧上云