91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

springboot接口權限校驗的方法是什么

小億
157
2023-08-14 10:37:11
欄目: 編程語言

Spring Boot中可以使用Spring Security來進行接口權限校驗。以下是一種常見的方法來實現接口權限校驗:

  1. 添加依賴:在pom.xml文件中添加Spring Security的依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 創建用戶和角色實體類:創建用戶和角色的實體類,并使用注解標記實體類和字段與數據庫表和列的關系。

  2. 創建用戶和角色的Repository:創建用戶和角色的Repository接口,用于與數據庫交互。

  3. 創建UserService:創建UserService類,實現UserDetailsService接口,并重寫loadUserByUsername方法,用于根據用戶名加載用戶信息。

  4. 創建SecurityConfig:創建SecurityConfig類,繼承WebSecurityConfigurerAdapter類,并重寫configure方法,用于配置Spring Security的相關信息。

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/public/**").permitAll() // 公開接口,無需認證
.anyRequest().authenticated() // 其他接口需要進行認證
.and()
.formLogin() // 使用表單登錄
.loginPage("/login") // 登錄頁的URL
.loginProcessingUrl("/doLogin") // 登錄表單的POST URL
.permitAll()
.and()
.logout()
.logoutUrl("/logout") // 登出URL
.logoutSuccessUrl("/login") // 登出成功后跳轉的URL
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
  1. 創建Controller:創建Controller類,并使用@PreAuthorize注解來標記需要進行權限校驗的接口。
@RestController
@RequestMapping("/api")
public class MyController {
@PreAuthorize("hasRole('ROLE_ADMIN')")
@GetMapping("/admin")
public String admin() {
return "Admin Page";
}
@PreAuthorize("hasAnyRole('ROLE_ADMIN', 'ROLE_USER')")
@GetMapping("/user")
public String user() {
return "User Page";
}
@GetMapping("/public")
public String publicPage() {
return "Public Page";
}
}

以上就是一種基于Spring Boot和Spring Security進行接口權限校驗的方法。在這種方法中,我們使用@PreAuthorize注解來標記接口,通過指定角色來進行權限校驗。當訪問帶有@PreAuthorize注解的接口時,Spring Security會自動進行權限校驗,如果用戶沒有相應的角色,將會返回403 Forbidden錯誤。

0
墨江| 洛隆县| 富蕴县| 西城区| 明溪县| 南城县| 长沙市| 日照市| 大庆市| 金坛市| 邮箱| 南江县| 宿松县| 长海县| 囊谦县| 太仓市| 沧州市| 黄冈市| 克拉玛依市| 开平市| 拜泉县| 东平县| 芒康县| 临湘市| 北川| 巴彦淖尔市| 五寨县| 大荔县| 大丰市| 华蓥市| 年辖:市辖区| 龙江县| 红河县| 西青区| 行唐县| 砚山县| 龙州县| 宁波市| 商南县| 临清市| 精河县|