springsecurity怎么使用
时间: 2023-05-23 09:07:06 浏览: 110
Spring Security 是基于 Spring 框架的安全框架,可以帮助开发者实现认证、授权、攻击防护等安全功能。使用 Spring Security 可以轻松地实现各种安全功能,例如:登录、注销、访问控制等。
以下是 Spring Security 的使用步骤:
1. 加入 Spring Security 依赖
在 pom.xml 文件中加入 Spring Security 依赖:
```
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
```
2. 添加 Spring Security 配置文件
在 Spring 的配置文件中添加如下配置:
```
<security:http auto-config="true">
<security:intercept-url pattern="/login" access="permitAll" />
<security:intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<security:form-login login-page="/login" default-target-url="/" />
<security:logout logout-success-url="/login" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="admin" password="admin" authorities="ROLE_USER" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
```
3. 编写安全相关的代码
在 controller 层中添加如下代码:
```
@RequestMapping("/login")
public String login(HttpServletRequest request, Model model) {
String error = request.getParameter("error");
if (error != null) {
model.addAttribute("error", "Invalid username and password!");
}
return "login";
}
@RequestMapping("/")
public String home() {
return "home";
}
@RequestMapping("/admin")
public String admin() {
return "admin";
}
```
4. 添加登录页面
在 templates 目录下添加登录页面 login.html:
```
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<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" /><br />
</form>
<c:if test="${not empty error}">
<div style="color: red">${error}</div>
</c:if>
</body>
</html>
```
5. 添加其他页面
在 templates 目录下添加 home.html 和 admin.html 页面。
6. 运行项目
启动项目后,在浏览器中访问 http://localhost:8080/login 页面,输入用户名和密码,如果用户名和密码正确,则登录成功,否则提示“Invalid username and password!”错误信息。
完成以上步骤后,就可以使用 Spring Security 来实现登录、注销、访问控制等安全功能了。
阅读全文