中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

SpringBoot怎么實現安全認證和授權

小億
92
2024-04-18 15:05:16
欄目: 編程語言

Spring Boot提供了Spring Security來實現安全認證和授權功能。下面是一個簡單的示例來演示如何在Spring Boot中實現基本的安全認證和授權:

  1. 添加依賴:在pom.xml文件中添加Spring Security的依賴:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 創建一個WebSecurityConfig類來配置安全規則:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/user/**").hasRole("USER")
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .and()
            .httpBasic();
    }
}
  1. 創建一個UserDetailsService實現類來獲取用戶信息:
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

@Service
public class CustomUserDetailsService implements UserDetailsService {

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        if ("admin".equals(username)) {
            return User.withDefaultPasswordEncoder().username("admin").password("admin").roles("ADMIN").build();
        } else if ("user".equals(username)) {
            return User.withDefaultPasswordEncoder().username("user").password("user").roles("USER").build();
        } else {
            throw new UsernameNotFoundException("User not found");
        }
    }
}
  1. 創建一個Controller來測試安全認證和授權:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/admin/test")
    public String adminTest() {
        return "Admin test";
    }

    @GetMapping("/user/test")
    public String userTest() {
        return "User test";
    }
}

這樣就可以在Spring Boot中實現基本的安全認證和授權功能了。當訪問/admin/test時需要ADMIN角色才能訪問,訪問/user/test時需要USER角色才能訪問。可以通過配置WebSecurityConfig類來定義更復雜的安全規則和用戶信息獲取方式。

0
旺苍县| 峨山| 景德镇市| 凤阳县| 元朗区| 牟定县| 陇川县| 从化市| 博客| 保靖县| 罗平县| 明光市| 荣昌县| 策勒县| 英吉沙县| 寿阳县| 南京市| 河池市| 临武县| 社旗县| 怀宁县| 长宁区| 遂昌县| 东丽区| 波密县| 于都县| 望都县| 申扎县| 铜陵市| 从江县| 来安县| 拉孜县| 土默特右旗| 巴青县| 河北省| 吉安县| 射洪县| 凤翔县| 香港| 西乌珠穆沁旗| 巴青县|