>  기사  >  컴퓨터 튜토리얼  >  Spring Security 권한 제어 프레임워크 사용 가이드

Spring Security 권한 제어 프레임워크 사용 가이드

WBOY
WBOY앞으로
2024-02-18 17:00:041265검색

Spring Security权限控制框架使用指南

백엔드 관리 시스템에서는 일반적으로 다양한 사용자가 인터페이스에 액세스하는 기능을 제한하기 위해 액세스 권한 제어가 필요합니다. 사용자에게 특정 권한이 없으면 특정 인터페이스에 액세스할 수 없습니다.

이 기사에서는 waynboot-mall 프로젝트를 예로 들어 권한 제어 프레임워크 Spring Security를 ​​일반적인 백엔드 관리 시스템에 도입하는 방법을 소개합니다. 개요는 다음과 같습니다:

waynboot-mall 프로젝트 주소: https://github.com/wayn111/waynboot-mall

1.스프링 시큐리티란?

Spring Security는 Java 애플리케이션을 위한 강력하고 유연한 보안 솔루션을 제공하도록 설계된 Spring 프레임워크 기반의 오픈 소스 프로젝트입니다. Spring Security는 다음 기능을 제공합니다:

  • 인증: 양식 로그인, HTTP 기본 인증, OAuth2, OpenID 등과 같은 다양한 인증 메커니즘을 지원합니다.
  • 권한 부여: 역할 또는 권한 기반 액세스 제어는 물론 표현식 기반의 세분화된 제어도 지원합니다.
  • 보호: 세션 고정, 클릭 하이재킹, 크로스 사이트 요청 위조 및 기타 공격 방지와 같은 다양한 보호 조치를 제공합니다.
  • 통합: Spring Framework 및 기타 타사 라이브러리 및 프레임워크(예: Spring MVC, Thymeleaf, Hibernate 등)와의 원활한 통합

2.스프링 시큐리티를 소개하는 방법

waynboot-mall 프로젝트에 spring-boot-starter-security 종속성을 직접 도입합니다.

으아악

3. 스프링 보안을 구성하는 방법

Spring Security 3.0에서 Spring Security를 ​​구성하는 것은 이전과 약간 다릅니다. 예를 들어 더 이상 WebSecurityConfigurerAdapter를 상속하지 않습니다. waynboot-mall 프로젝트에서 구체적인 구성은 다음과 같습니다.

으아악

SecurityConfig 구성 클래스에 대한 자세한 소개는 다음과 같습니다.

  • filterChain(HttpSecurity httpSecurity) 방법은 접근 제어의 핵심 방법입니다. 여기서는 URL, cors 구성, csrf 구성, 사용자 정보 로딩 구성, jwt 필터 차단 구성 및 기타 여러 기능에 권한 인증이 필요한지 여부를 설정할 수 있습니다.
  • authenticationManager(AuthenticationConfiguration 인증Configuration) 메서드는 인증 인터페이스를 활성화하는 데 적합하며 수동으로 선언해야 합니다. 그렇지 않으면 시작 시 오류가 보고됩니다.
  • bCryptPasswordEncoder() 메서드를 사용하면 사용자가 로그인할 때 비밀번호 암호화 정책을 정의할 수 있습니다. 수동으로 선언해야 하며, 그렇지 않으면 시작 시 오류가 보고됩니다.

4. 스프링 시큐리티를 사용하는 방법

Spring Security를 ​​사용하려면 다음과 같이 액세스 권한을 제어해야 하는 메서드나 클래스에 해당 @PreAuthorize 주석을 추가하기만 하면 됩니다.

으아악

현재 로그인한 사용자에게 list 메소드에 액세스할 수 있는 system:role:list 권한이 있음을 나타내기 위해 @PreAuthorize("@ss.hasPermi('system:role:list')") 주석을 list 메소드에 추가했습니다. 권한 오류가 반환됩니다.

5. 현재 로그인된 사용자의 권한을 얻습니다

SecurityConfig 구성 클래스에서는 사용자 정보 로드를 위한 구현 클래스로 UserDetailsServiceImpl을 정의하여 데이터베이스의 사용자 계정 및 비밀번호를 프런트 엔드에서 전달한 계정 및 비밀번호와 비교합니다. 코드는 다음과 같습니다.

으아악

다음은 UserDetailsServiceImpl의 코드 로직에 대한 설명이므로 코드의 도움을 받아 이해할 수 있습니다.

  • 데이터베이스의 현재 사용자 정보 읽기
  • 사용자가 존재하는지 확인
  • 비활성화 여부 결정
  • 현재 사용자의 역할 정보 가져오기
  • 역할에 따른 권한 정보 받기

요약하자면

이 글에서는 권한 제어 프레임워크 Spring Security 3.0 버전을 백엔드 관리 시스템 및 코드 실습에 도입하는 방법을 설명합니다. 나는 이것이 모든 사람이 권한 제어 프레임워크인 Spring Security를 ​​명확하게 이해하는 데 도움이 될 것이라고 믿습니다. 나중에 이 기사의 사용 가이드에 따라 액세스 제어를 위해 단계별로 Spring Security를 ​​자신의 프로젝트에 도입할 수 있습니다.

위 내용은 Spring Security 권한 제어 프레임워크 사용 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 mryunwei.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제