在Web应用程序中,登录认证是保护用户数据和系统安全的重要组成部分。Spring Security是一个功能强大且开发友好的框架,用于实现Web应用程序的认证和授权功能。本文将介绍如何在Spring Boot中使用Spring Security来实现登录认证功能。
添加依赖
在pom.xml文件中添加如下依赖,以集成Spring Security:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
创建Spring Security配置类
创建一个名为SecurityConfig的配置类,并添加@EnableWebSecurity注解和继承WebSecurityConfigurerAdapter:
@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")
.defaultSuccessUrl("/home")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("{noop}password")
.roles("ADMIN");
}
}
上述代码配置了以下内容:
configure(HttpSecurity http)方法配置了URL路径的访问权限和登录成功后的跳转页面。configure(AuthenticationManagerBuilder auth)方法配置了一个简单的基于内存的用户认证。
创建登录页面
创建一个名为login.html的登录页面,并放置在resources/templates目录下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form th:action="@{/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>
<button type="submit">Login</button>
</div>
</form>
</body>
</html>
创建首页
创建一个名为home.html的首页,并放置在resources/templates目录下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h2>Welcome</h2>
<p>You have successfully logged in.</p>
<a href="/logout">Logout</a>
</body>
</html>
启动应用程序
创建SpringBootApplication启动类,并在main方法中运行应用程序。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
测试登录认证
现在可以通过访问http://localhost:8080/login来访问登录页面。输入用户名admin和密码password后,点击登录按钮将会跳转到首页http://localhost:8080/home。
若使用错误的用户名或密码进行登录,则会返回到登录页面,并显示错误消息。
总结
本文介绍了如何使用Spring Security在Spring Boot中实现登录认证。通过配置WebSecurityConfigurerAdapter类,并指定登录页面、成功登录后的跳转页面和认证方式,可以轻松地实现基本的登录认证功能。
参考资料
本文来自极简博客,作者:健身生活志,转载请注明原文链接:Spring Boot中使用Spring Security实现登录认证
微信扫一扫,打赏作者吧~