java代码写一个后端使用springsecruity鉴权 后台要鉴权,小程序只想要登陆进行token验证,不校验权限
时间: 2024-04-30 21:17:20 浏览: 88
springsecurity源码(鉴权有缺陷)
好的,关于你的问题,以下是java代码写一个后端使用Spring Security鉴权的方法:
1. 首先,你需要在pom.xml文件中添加Spring Security的依赖:
```
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
```
2. 然后,你需要在你的Spring Boot应用程序中配置Spring Security,具体代码如下:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 不校验权限
http.authorizeRequests()
.antMatchers("/api/**")
.permitAll()
.anyRequest()
.authenticated();
http.csrf().disable();
}
}
```
在上面的代码中,我们配置了一个WebSecurityConfig类,并且通过@EnableWebSecurity注解来开启Spring Security。configure()方法用于配置HTTP安全性,我们使用了antMatchers()方法来配置不校验权限的URI。
3. 最后,你需要在你的控制器中添加对应的API,具体代码如下:
```java
@RestController
@RequestMapping("/api")
public class ApiController {
@PostMapping("/login")
public Map<String, Object> login(@RequestBody Map<String, String> request) {
Map<String, Object> map = new HashMap<>();
// 执行登陆后返回token
map.put("token", "test_token");
return map;
}
@GetMapping("/user/info")
public Map<String, Object> userInfo() {
Map<String, Object> map = new HashMap<>();
map.put("name", "test_user");
map.put("role", "test_role");
return map;
}
}
```
在上面的代码中,我们首先添加了一个/login的API,用于用户进行登陆并返回token。然后,我们添加了一个/user/info的API,用于获取用户信息。
至此,我们通过Spring Security实现了后端API的鉴权,并且配置了不校验权限的API。对于小程序,可以通过调用登陆API获取到token,并且在请求其他API时加上Authorization头部信息即可。
阅读全文