백엔드 개발 PHP 튜토리얼 Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

Jan 18, 2017 am 09:14 AM
apache shiro

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

1. Shiro란 무엇인가

Apache Shiro는 인증, 권한 부여 기능을 제공하는 강력하고 사용하기 쉬운 Java 보안 프레임워크입니다. , 암호화 및 세션 관리 및 기타 기능:

인증 - 사용자 "로그인"이라고도 함
인증 - 액세스 제어
암호 암호화 - 엿보는 눈으로부터 데이터를 보호하거나 숨김 ;
세션 관리 - 각 사용자와 관련된 시간에 민감한 상태입니다.

어떤 애플리케이션이든 Shiro는 종합적인 보안 관리 서비스를 제공할 수 있습니다. 그리고 다른 보안 프레임워크에 비해 Shiro는 훨씬 간단합니다.

2. Shiro의 아키텍처 소개

먼저 Shiro의 세 가지 핵심 구성 요소인 Subject, SecurityManager 및 Realms를 살펴보겠습니다.

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개


제목: "현재 운영 사용자". 그러나 Shiro에서 주체 개념은 사람을 지칭할 뿐만 아니라 타사 프로세스, 백그라운드 계정(데몬 계정) 또는 기타 유사한 것일 수도 있습니다. 이는 단순히 "소프트웨어가 현재 상호 작용하는 대상"을 의미합니다. 그러나 대부분의 목적과 용도에서는 이를 Shiro의 "사용자" 개념으로 생각할 수 있습니다.

제목은 현재 사용자의 보안 업무를 나타내며, SecurityManager는 모든 사용자의 보안 업무를 관리합니다.

SecurityManager: 일반적인 Facade 모드인 Shiro 프레임워크의 핵심입니다. Shiro는 SecurityManager를 통해 내부 구성 요소 인스턴스를 관리하고 이를 통해 보안 관리를 위한 다양한 서비스를 제공합니다.

Realm: Realm은 Shiro와 애플리케이션 보안 데이터 사이의 "브리지" 또는 "커넥터" 역할을 합니다. 즉, 사용자에 대한 인증(로그인) 및 권한 부여(액세스 제어) 확인을 수행할 때 Shiro는 애플리케이션에 구성된 Realm에서 사용자와 해당 권한 정보를 조회합니다.

이런 의미에서 Realm은 본질적으로 보안과 관련된 DAO입니다. Realm은 데이터 소스의 연결 세부정보를 캡슐화하고 필요할 때 관련 데이터를 Shiro에 제공합니다. Shiro를 구성할 때 인증 및/또는 권한 부여를 위해 하나 이상의 영역을 지정해야 합니다. 여러 Realm을 구성할 수 있지만 적어도 하나는 필수입니다.

Shiro에는 LDAP, 관계형 데이터베이스(JDBC), INI와 유사한 텍스트 구성 리소스 및 속성 파일과 같은 수많은 보안 데이터 소스(디렉터리라고도 함)에 연결할 수 있는 Realm이 내장되어 있습니다. 등. 기본 Realm이 요구 사항을 충족하지 않는 경우 사용자 정의 데이터 소스를 나타내는 자체 Realm 구현을 연결할 수도 있습니다.

Shiro 전체 아키텍처 다이어그램:

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

위에 언급된 Subject, SecurityManager 및 Realm의 세 가지 핵심 구성 요소 외에도 Shiro의 주요 구성 요소에는 다음이 포함됩니다.

인증자: 인증은 사용자의 신원을 확인하는 과정입니다. 이 프로세스의 일반적인 예는 친숙한 "사용자/비밀번호" 조합입니다. 대부분의 사용자는 소프트웨어 시스템에 로그인할 때 일반적으로 자신의 사용자 이름(주체)과 이를 지원하는 비밀번호(인증서)를 제공합니다. 시스템에 저장된 비밀번호(또는 비밀번호 표현)가 사용자가 제공한 비밀번호와 일치하면 인증된 것으로 간주됩니다.

승인자: 승인은 본질적으로 액세스 제어입니다. 리소스, 웹 페이지 등과 같이 애플리케이션 사용자가 액세스할 수 있는 콘텐츠를 제어합니다.

SessionManager: 보안 프레임워크의 세계에서 Apache Shiro는 고유한 기능을 제공합니다. 즉 모든 애플리케이션 또는 아키텍처 계층에서 Session API를 일관되게 사용하는 것입니다. 즉, Shiro는 소규모 백엔드 독립형 애플리케이션부터 대규모 클러스터 웹 애플리케이션에 이르기까지 모든 애플리케이션에 대화형 프로그래밍 패러다임을 제공합니다. 이는 세션을 사용하려는 애플리케이션 개발자가 서블릿이나 EJB 컨테이너를 사용하도록 강요받지 않는다는 것을 의미합니다. 또는 이러한 컨테이너를 사용하는 경우 개발자는 이제 서블릿이나 EJB 메커니즘 대신 모든 계층에서 일관된 세션 API를 사용하도록 선택할 수 있습니다.

CacheManager: Shiro의 다른 구성 요소에 대한 캐싱 지원을 제공합니다.


위 내용은 Apache Shiro 사용자 매뉴얼의 내용입니다. (1) Shiro Architecture 소개 기타 관련 내용은 PHP 중국어 홈페이지(www.php)를 참고하시기 바랍니다. .cn)!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 프레임워크 성능 비교: 속도와 효율성의 궁극적인 대결 PHP 프레임워크 성능 비교: 속도와 효율성의 궁극적인 대결 Apr 30, 2024 pm 12:27 PM

벤치마크에 따르면 Laravel은 페이지 로딩 속도와 데이터베이스 쿼리에 탁월하고 CodeIgniter는 데이터 처리에 탁월합니다. PHP 프레임워크를 선택할 때는 애플리케이션 크기, 트래픽 패턴, 개발 팀 기술을 고려해야 합니다.

Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? May 09, 2024 am 09:33 AM

동시성 테스트 및 디버깅 Java 동시 프로그래밍의 동시성 테스트 및 디버깅은 매우 중요하며 다음 기술을 사용할 수 있습니다. 동시성 테스트: 단위 테스트: 단일 동시 작업을 격리하고 테스트합니다. 통합 테스트: 여러 동시 작업 간의 상호 작용을 테스트합니다. 부하 테스트: 부하가 심한 상황에서 애플리케이션의 성능과 확장성을 평가합니다. 동시성 디버깅: 중단점: 스레드 실행을 일시 중지하고 변수를 검사하거나 코드를 실행합니다. 로깅: 스레드 이벤트 및 상태를 기록합니다. 스택 추적: 예외의 원인을 식별합니다. 시각화 도구: 스레드 활동 및 리소스 사용량을 모니터링합니다.

회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다. 회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다. Apr 30, 2024 pm 05:34 PM

웹사이트를 오프라인 상태로 만들 수 있는 공격 방법은 다양하며, 더 복잡한 방법에는 데이터베이스 및 프로그래밍에 대한 기술적 지식이 필요합니다. 더 간단한 방법은 "DenialOfService"(DOS) 공격이라고 합니다. 이 공격 방법의 이름은 일반 고객이나 웹 사이트 방문자의 정상적인 서비스 요청을 거부하려는 의도에서 유래되었습니다. 일반적으로 DOS 공격에는 두 가지 형태가 있습니다. OSI 모델의 세 번째 및 네 번째 계층, 즉 OSI 모델의 일곱 번째 계층, 즉 응용 프로그램 계층 공격입니다. 공격 - 네트워크 계층은 대량의 정크 트래픽이 웹 서버로 흘러갈 때 발생합니다. 스팸 트래픽이 네트워크의 처리 능력을 초과하면 웹사이트가 다운됩니다. 두 번째 유형의 DOS 공격은 애플리케이션 계층에서 이루어지며 결합된 공격을 사용합니다.

Eclipse에서 서버를 추가하는 방법 Eclipse에서 서버를 추가하는 방법 May 05, 2024 pm 07:27 PM

Eclipse에 서버를 추가하려면 다음 단계를 수행하십시오. 서버 런타임 환경 생성 서버 구성 서버 인스턴스 생성 서버 런타임 환경 선택 서버 인스턴스 구성 서버 배포 프로젝트 시작

58 초상화 플랫폼 구축에 알고리즘 적용 58 초상화 플랫폼 구축에 알고리즘 적용 May 09, 2024 am 09:01 AM

1. 58초상화 플랫폼 구축 배경 먼저, 58초상화 플랫폼 구축 배경에 대해 말씀드리겠습니다. 1. 기존 프로파일링 플랫폼의 전통적인 사고로는 더 이상 충분하지 않습니다. 사용자 프로파일링 플랫폼을 구축하려면 여러 비즈니스 라인의 데이터를 통합하여 정확한 사용자 초상화를 구축하는 데이터 웨어하우스 모델링 기능이 필요합니다. 그리고 알고리즘 측면의 기능을 제공해야 하며, 마지막으로 사용자 프로필 데이터를 효율적으로 저장, 쿼리 및 공유하고 프로필 서비스를 제공할 수 있는 데이터 플랫폼 기능도 있어야 합니다. 자체 구축한 비즈니스 프로파일링 플랫폼과 중간 사무실 프로파일링 플랫폼의 주요 차이점은 자체 구축한 프로파일링 플랫폼이 단일 비즈니스 라인에 서비스를 제공하고 필요에 따라 사용자 정의할 수 있다는 것입니다. 모델링하고 보다 일반적인 기능을 제공합니다. 2.58 Zhongtai 초상화 구성 배경의 사용자 초상화

PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 May 03, 2024 am 08:54 AM

PHP 웹 사이트를 성공적으로 배포하고 유지하려면 다음 단계를 수행해야 합니다. 웹 서버(예: Apache 또는 Nginx) 선택 PHP 설치 데이터베이스 생성 및 PHP 연결 서버에 코드 업로드 도메인 이름 및 DNS 모니터링 웹 사이트 유지 관리 설정 단계에는 PHP 및 웹 서버 업데이트, 웹 사이트 백업, 오류 로그 모니터링 및 콘텐츠 업데이트가 포함됩니다.

Fail2Ban을 사용하여 무차별 대입 공격으로부터 서버를 보호하는 방법 Fail2Ban을 사용하여 무차별 대입 공격으로부터 서버를 보호하는 방법 Apr 27, 2024 am 08:34 AM

Linux 관리자의 중요한 작업은 불법적인 공격이나 액세스로부터 서버를 보호하는 것입니다. 기본적으로 Linux 시스템에는 iptables, UFW(Uncomplicated Firewall), CSF(ConfigServerSecurityFirewall) 등과 같이 잘 구성된 방화벽이 함께 제공되어 다양한 공격을 방지할 수 있습니다. 인터넷에 연결된 모든 컴퓨터는 악의적인 공격의 잠재적인 대상입니다. 서버에 대한 불법 액세스를 완화하는 데 사용할 수 있는 Fail2Ban이라는 도구가 있습니다. Fail2Ban이란 무엇입니까? Fail2Ban[1]은 무차별 공격으로부터 서버를 보호하는 침입 방지 소프트웨어입니다. Python 프로그래밍 언어로 작성되었습니다.

PHP 보안 모범 사례를 구현하는 방법 PHP 보안 모범 사례를 구현하는 방법 May 05, 2024 am 10:51 AM

PHP 보안 모범 사례를 구현하는 방법 PHP는 동적 및 대화형 웹 사이트를 만드는 데 사용되는 가장 인기 있는 백엔드 웹 프로그래밍 언어 중 하나입니다. 그러나 PHP 코드는 다양한 보안 취약점에 취약할 수 있습니다. 이러한 위협으로부터 웹 애플리케이션을 보호하려면 보안 모범 사례를 구현하는 것이 중요합니다. 입력 유효성 검사 입력 유효성 검사는 사용자 입력의 유효성을 검사하고 SQL 삽입과 같은 악의적인 입력을 방지하는 중요한 첫 번째 단계입니다. PHP는 filter_var() 및 preg_match()와 같은 다양한 입력 유효성 검사 함수를 제공합니다. 예: $username=filter_var($_POST['사용자 이름'],FILTER_SANIT

See all articles