如何在Spring Boot中集成Spring Security?
时间: 2024-02-22 22:52:16 浏览: 76
基于Spring Boot,Spring Security angular js使用集成activiti工作流实现
在Spring Boot项目中集成Spring Security非常简单,只需要在项目中增加Spring Boot Security的依赖即可。下面是一个基础的Spring Boot Security登录验证的示例:
1.在pom.xml文件中添加Spring Boot Security依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2.创建一个WebSecurityConfig类,用于配置Spring Security:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
```
3.在上面的代码中,我们配置了一个基本的登录验证,只有经过身份验证的用户才能访问应用程序的其他部分。我们还定义了一个用户“user”,密码为“password”,并将其分配给“USER”角色。
4.在应用程序中,我们还需要一个登录页面。在templates文件夹中创建一个名为“login.html”的文件,添加以下内容:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form th:action="@{/login}" method="post">
<div><label>Username: <input type="text" name="username" /></label></div>
<div><label>Password: <input type="password" name="password" /></label></div>
<<div><input type="submit" value="Sign In" /></div>
</form>
</body>
</html>
```
5.最后,在应用程序的控制器中添加一个映射到登录页面的请求处理程序:
```java
@Controller
public class HomeController {
@RequestMapping(value = {"/", "/home"})
public String home() {
return "home";
}
@RequestMapping(value = "/login")
public String login() {
return "login";
}
}
```
这样,我们就完成了一个基本的Spring Boot Security登录验证的配置。
阅读全文