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

溫馨提示×

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
抚顺县| 滦平县| 定结县| 江阴市| 延安市| 正安县| 都匀市| 赤水市| 墨竹工卡县| 当雄县| 海兴县| 兴和县| 镇康县| 青海省| 桐城市| 老河口市| 吐鲁番市| 襄汾县| 望都县| 雷波县| 龙岩市| 建水县| 昌平区| 沙坪坝区| 湖口县| 舒兰市| 合肥市| 安国市| 成武县| 白水县| 辽宁省| 赣榆县| 桐乡市| 吴桥县| 无极县| 囊谦县| 谷城县| 东乌珠穆沁旗| 舒兰市| 武平县| 鄯善县|