Java에서 Apache Shiro 보안 프레임워크를 사용하는 방법
1. Shiro 소개:
Apache Shiro는 Java 보안(권한) 프레임워크입니다.
Shiro를 사용하면 JavaSE 환경뿐만 아니라 JavaEE 환경에서도 사용할 수 있는 충분한 애플리케이션을 매우 쉽게 개발할 수 있습니다. Shiro는 인증, 권한 부여, 암호화, 세션 관리, 웹 통합, 캐싱 등 모든 작업을 수행할 수 있습니다.
shiro 기능:
인증: 신원 인증, 로그인, 사용자가 해당 신원을 가지고 있는지 확인
인증: 승인, 즉 권한 확인, 인증된 사용자에게 특정 권한이 있는지 확인; 즉, 사용자가 특정 역할을 가지고 있는지 확인하거나 사용자가 특정 리소스에 대해 특정 권한을 가지고 있는지 세부적으로 확인하는 등 사용자가 수행할 수 있는 작업을 결정합니다.
세션 관리자: 세션 관리, 즉! , 사용자 로그인 후 첫 번째 세션입니다. 모든 정보는 세션에 있습니다. 세션은 일반 JavaSE 환경 또는 웹 환경일 수 있습니다.
암호화, 데이터 보안 보호; 비밀번호 암호화 일반 텍스트 대신 데이터베이스에 저장됨 웹 지원: 웹 환경에 쉽게 통합될 수 있음
캐싱: 예를 들어 사용자가 로그인한 후 사용자 정보, 역할 및 권한이 저장됩니다. 매번 확인할 필요가 없습니다. 이는 효율성을 향상시킬 수 있습니다
동시성: Shiro는 다중 스레드 응용 프로그램의 동시 확인을 지원합니다. 즉, 한 스레드에서 다른 스레드를 시작하면 권한이 자동으로 해당 스레드에 전파될 수 있습니다.
테스트: 테스트 제공 support;
다음 계정으로 실행: 사용자가 액세스를 다른 사용자로 가장하도록 허용합니다(허용하는 경우)
기억하기: 기억하세요. 이것은 매우 일반적인 기능입니다. 즉, 한 번 로그인한 후에는 그럴 필요가 없습니다. 다음에 로그인하세요
Shiro 아키텍처(외부)
외부에서 Shiro를 바라보기, 즉 애플리케이션 관점에서 작업을 완료하기 위해 shiro를 사용하는 방법을 관찰하기:
제목: 애플리케이션이 수행하는 개체 즉, Shiro의 외부 API의 핵심은 주제이고 주제는 현재 사용자를 나타냅니다. 이 사용자는 웹 크롤러와 같이 반드시 특정 사람일 필요는 없습니다. Subject와의 모든 상호 작용은 SecurityManager에 위임됩니다. Subject는 실제로 Facade이고 SecurityManageer는 실제 실행자입니다.
SecurityManager: Security Manager, 즉 모든 보안 관련 작업은 SecurityManager와 상호 작용하고 모든 것을 관리합니다. Subjects Shiro의 핵심이며 Shiro의 다른 구성 요소와의 상호 작용을 담당한다고 볼 수 있습니다. 이는 SpringMVC의
DispatcherServlet
Realm의 역할과 동일합니다. Shiro는 보안 데이터(예: 사용자, 역할, 즉, SecurityManager가 사용자의 신원을 확인하려면 사용자의 신원이 합법적인지 확인하기 위해 Realm에서 해당 사용자를 가져와야 합니다. Realm에서 사용자의 작업을 수행할 수 있는지 확인하기 위한 권한입니다.
Shiro 아키텍처(내부)
주제: 애플리케이션과 상호 작용하는 '사용자'; 관리자: SpringMVC의 DispatcherServlet과 동일하며 모든 특정 상호 작용은 보안 관리자를 통해 제어되며 인증, 승인 및 세션을 담당합니다. 주체 인증의 경우 확장 지점이며 사용자 정의할 수 있습니다. 즉, 어떤 상황에서 사용자 인증이 통과되는지 확인하는 데 사용됩니다. 주체가 해당 작업을 수행할 권한이 있는지 여부, 즉 사용자가 애플리케이션에서 액세스할 수 있는 기능을 제어합니다.
영역: 보안 엔터티 데이터 소스로 간주될 수 있는 하나 이상의 영역이 있을 수 있습니다. 보안 엔터티를 얻는 데 사용되는 것은 사용자가 제공하는 DBC 또는 메모리 구현 등을 사용하여 구현할 수 있으므로 일반적으로 애플리케이션에서는 자체 영역을 구현해야 합니다.
CacheManager: 사용자, 역할, 권한 등의 캐시를 관리하는 캐시 컨트롤러. 이러한 데이터는 기본적으로 거의 액세스할 수 없으므로 이후에 액세스가 향상될 수 있습니다.
암호화 모듈, Shiro는 비밀번호 암호화, 암호 해독 등을 위한 몇 가지 일반적인 암호화 구성 요소를 개선합니다.
2. 빠른 시작
1. 공식 웹사이트의 메시지를 따릅니다. 빠른 시작 사례 GitHub 주소를 찾으세요: shiro/samples/quickstart/
4. 빠른 시작 사례 POM을 XML 파일로 복사하세요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
5. 빠른 시작 사례의 리소스 아래에 log4j.properties를 복사합니다
6. shiro.ini 파일을 복사합니다
7. Quickstart.java
를 실행하고 시작합니다.2. 코드 분석
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
3. SpringBoot는 Shiro를 통합합니다
1. 지금 바로 상위 프로젝트에 새로운 springboot 모듈을 생성하세요
2. 및 Shiro 통합 패키지1 2 3 4 5 6 |
|

주제 사용자-> ShiroFilterFactoryBean
SecurityManager가 모든 사용자를 관리합니다-> DefaultWebSecurityManager
3. AuthorizingRealm
객체 생성 순서 실제 작업: realm -> securityManager -> subject
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
4을 상속해야 하는 사용자 정의 영역을 작성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
5.
2.1. 로그인 차단 사용
getShiroFilterFactoryBean 메소드에서 차단해야 하는 로그인 요청 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
테스트: 추가 링크를 클릭하면 추가 페이지로 이동하지 않고 이동합니다. 로그인 페이지에서 Success
2. 사용자 인증1. Controller 레이어에 로그인 메소드를 작성합니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
2. Custom에서 AuthenticationInfo 메소드를 볼 수 있습니다. UserRealm이 먼저 실행된 후 로그인 관련 작업을 수행합니다
3. UserRealm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
4에서 doGetAuthenticationInfo 메소드를 수정합니다. 테스트하고 잘못된 비밀번호를 입력합니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
4에서 새로운 application.yml을 생성합니다.
1 2 |
|
1 2 3 4 5 6 |
|
3. 로그인하여 인증을 성공합니다.
4. 쓰기 인증 doGetAuthorizationInfo 메소드
5. 요청 인증 테스트 성공 6. Shiro가 Thymeleaf1 가져오기 종속성1 2 3 4 5 6 7 8 9 |
|
4. Test
5. index.html
을 수정하세요.
위 내용은 Java에서 Apache Shiro 보안 프레임워크를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

서버 측에서 문자 인코딩을 설정하려면 Bridble Bootstrap 테이블을 해결하려면 다음 단계를 따라야합니다. 서버 문자 인코딩을 확인하십시오. 서버 구성 파일 편집; 인코딩을 UTF-8로 설정하십시오. 서버를 저장하고 다시 시작합니다. 인코딩을 확인하십시오.

H5 개발에서 마스터 해야하는 도구 및 프레임 워크에는 vue.js, React 및 Webpack이 포함됩니다. 1.vue.js는 사용자 인터페이스를 구축하고 구성 요소 개발을 지원하는 데 적합합니다. 2. 복잡한 응용 프로그램에 적합한 가상 DOM을 통해 페이지 렌더링을 최적화합니다. 3. Webpack은 모듈 포장에 사용되며 리소스로드를 최적화합니다.

XAMPP가 포트 충돌, 구성 파일 오류, 불충분 한 시스템 권한, 서비스 종속성 문제 및 설치 문제를 포함하여 MySQL을 시작하지 않는 데는 여러 가지 이유가 있습니다. 문제 해결 단계는 다음과 같습니다. 1) 포트 충돌 확인; 2) 구성 파일 확인; 3) 시스템 권한을 점검하십시오. 4) 서비스 종속성을 점검합니다. 5) MySQL을 다시 설치하십시오. 다음 단계를 따르면 MySQL 시작이 실패하게하는 문제를 찾고 해결할 수 있습니다.

Phpmyadmin 보안 방어 전략의 핵심은 다음과 같습니다. 1. Phpmyadmin의 최신 버전을 사용하고 정기적으로 PHP 및 MySQL을 업데이트합니다. 2. 액세스 권한을 엄격하게 제어하고, .htaccess 또는 웹 서버 액세스 제어 사용; 3. 강력한 비밀번호와 2 단계 인증을 활성화합니다. 4. 데이터베이스를 정기적으로 백업하십시오. 5. 민감한 정보를 노출하지 않도록 구성 파일을주의 깊게 확인하십시오. 6. WAF (Web Application Firewall) 사용; 7. 보안 감사를 수행하십시오. 이러한 조치는 부적절한 구성, 이전 버전 또는 환경 보안 위험으로 인해 PhpmyAdmin으로 인한 보안 위험을 효과적으로 줄이고 데이터베이스의 보안을 보장 할 수 있습니다.

작곡가를 사용할 때 능숙 해지려면 다음과 같은 기술을 마스터해야합니다. 1. Composer.json 및 Composer.lock Files, 2. Composer의 작동 방식 이해, 3. Master Composer의 명령 줄 도구, 4. 기본 및 고급 사용법 이해, 5. 일반적인 오류 및 디버깅 기술에 익숙하고, 사용법을 최적화하고 모범 사례를 최적화해야합니다.

메모장에 줄 번호를 표시하는 단계는 다음과 같습니다. 1. 설정 -> 환경 설정 -> 편집기 -> "표시 줄 번호"확인. 라인 번호는 코드의 특정 위치를 신속하게 찾아서 참조하고 생산성을 향상시키는 데 도움이되기 때문에 프로그래머에게는 중요합니다.

Apache는 클라우드 네이티브 기술, 기계 학습, 인공 지능, 블록 체인, 데이터 보안 및 성능 최적화에서 계속 발전 할 것입니다. 1) 클라우드 네이티브 및 컨테이너화 된 기술은보다 최적화 된 버전을 출시하기 위해 추가로 통합 될 것입니다. 2) 머신 러닝 및 인공 지능 분야에서 사용하기 쉬운 도구 및 프레임 워크가 출시 될 것입니다. 3) 블록 체인 및 분산 원장 기술은 표준화 및 대중화를 촉진하기 위해 더 많은 자원을 투자 할 것입니다. 4) 데이터 보안 및 개인 정보 보호가 강화되고 더 높은 보안 버전 및 도구가 시작될 것입니다. 5) 성능 최적화 및 모범 사례는 개발자가 효율성을 향상시킬 수 있도록 계속 가치가 있습니다.
