spring security 5.7 登录代码
时间: 2023-07-07 11:32:23 浏览: 83
下面是一个简单的 Spring Security 5.7 登录代码示例:
首先,需要添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
然后,在 Spring Security 配置类中添加以下代码:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/dashboard")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
```
其中,`CustomUserDetailsService` 是一个自定义的实现了 `UserDetailsService` 接口的类,用于验证用户登录信息。`BCryptPasswordEncoder` 是一个密码加密工具,用于加密用户密码。
接下来,可以创建一个登录页面,例如:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="/login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" /><br />
<label for="password">Password:</label>
<input type="password" id="password" name="password" /><br />
<input type="submit" value="Login" />
</form>
</body>
</html>
```
最后,在控制器中添加以下代码:
```java
@Controller
public class LoginController {
@GetMapping("/login")
public String login() {
return "login";
}
@GetMapping("/dashboard")
public String dashboard() {
return "dashboard";
}
}
```
其中,`dashboard()` 方法是登录成功后显示的页面。
以上就是一个简单的 Spring Security 5.7 登录代码示例。
阅读全文