springboot中springsecurity配置登陆,注销
时间: 2023-12-16 15:22:13 浏览: 102
最简单的,注册,登陆,注销的代码,通过springmvc+hibernate+jstl注解实现的
5星 · 资源好评率100%
在springboot中配置springsecurity的登陆和注销功能,需要进行如下步骤:
1. 添加springsecurity依赖
在pom.xml文件中添加springsecurity依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 配置springsecurity
在应用程序的配置类中添加@EnableWebSecurity注解,开启springsecurity的配置功能,并继承WebSecurityConfigurerAdapter类,重写configure方法,进行springsecurity的配置:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.failureUrl("/login?error=true")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.permitAll()
.and()
.csrf().disable();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("{noop}password").roles("USER")
.and()
.withUser("admin").password("{noop}password").roles("ADMIN");
}
}
```
上述代码中,我们使用了inMemoryAuthentication()方法来配置用户信息。其中,用户"user"的密码为"password",拥有"USER"角色;用户"admin"的密码为"password",拥有"ADMIN"角色。
3. 创建登陆和注销页面
在resources/templates目录下创建login.html和home.html两个页面,分别用于登陆和注销后跳转的页面。
login.html页面示例:
```
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form th:action="@{/login}" method="post">
<div>
<label>Username:</label>
<input type="text" name="username"/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div>
<button type="submit">Login</button>
</div>
<div th:if="${param.error}">
Invalid username and password.
</div>
</form>
</body>
</html>
```
home.html页面示例:
```
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body>
<h2>Welcome!</h2>
<p>You have successfully logged in.</p>
<form th:action="@{/logout}" method="post">
<button type="submit">Logout</button>
</form>
</body>
</html>
```
4. 运行应用程序
现在,我们可以运行应用程序,打开浏览器访问http://localhost:8080/login,输入用户信息进行登陆。登陆成功后,将跳转到http://localhost:8080/home页面,页面中将显示"Welcome! You have successfully logged in."的欢迎信息。在home.html页面中,我们可以通过"Logout"按钮注销用户,将跳转回登陆页面。
阅读全文