我要最新的 springboot集合springsecurity的代码
时间: 2024-01-30 17:03:04 浏览: 61
spring-boot与spring-security整合的java代码
5星 · 资源好评率100%
以下是一个基本的Spring Boot集成Spring Security的示例代码:
1. 添加依赖
在 `pom.xml` 文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 配置Spring Security
在 `application.properties` 中配置用户名和密码:
```
spring.security.user.name=admin
spring.security.user.password=admin123
```
3. 创建一个安全配置类
创建一个类 `SecurityConfig`,在其中配置 `WebSecurity` 和 `HttpSecurity`:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("{noop}admin123").roles("ADMIN");
}
}
```
在上面的代码中,我们配置了一个基本的认证和授权规则:
- `/` 路径对所有用户开放。
- `/admin/**` 路径需要 `ADMIN` 角色才能访问。
- 其他路径需要认证才能访问。
- 登录页面为 `/login`。
- 配置了一个内存中的用户 `admin`,密码为 `admin123`,角色为 `ADMIN`。
4. 创建控制器
创建一个控制器类 `HomeController`,在其中定义几个请求处理方法:
```
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "home";
}
@GetMapping("/admin")
public String admin() {
return "admin";
}
@GetMapping("/login")
public String login() {
return "login";
}
}
```
在上面的代码中,我们定义了三个请求处理方法:
- `/` 路径返回 `home.html` 页面。
- `/admin` 路径返回 `admin.html` 页面。
- `/login` 路径返回 `login.html` 页面。
5. 创建视图模板
创建三个视图模板文件:
- `src/main/resources/templates/home.html`
- `src/main/resources/templates/admin.html`
- `src/main/resources/templates/login.html`
你可以在这些模板中添加任何你想要的内容。
6. 运行应用程序
运行应用程序并访问 `http://localhost:8080`。你应该能够看到 `home.html` 页面。尝试访问 `/admin` 路径,你将被重定向到登录页面。输入用户名和密码 `admin` / `admin123`,你将被重定向到 `/admin` 页面。
阅读全文