Java 개선 -05- 시로-간단한 승인 판단

여기에 사진 설명 삽입


QQ 1274510382
Wechat JNZ_aming
Business Alliance QQ 그룹 538250800
기술 문제 QQ 그룹 599020441
솔루션 QQ 그룹 152889761
가입 QQ 그룹 649347320
공유 학습 QQ 그룹 674240731 네트워크 보안, 딥 러닝, 임베디드, 기계 향상, 생물학적 지능, 생명 과학을 목표로하는
연대기 기술
.

Ding Ding Ding : 제품이 온라인 상태 임 —> 공식 WeChat 공개
계정 팔로우 —Jinan Ji Nian Information Technology Co., Ltd. 인민 생활 프로젝트 : 상점 프랜차이즈 / 엔터테인먼트 데이트 / 기업 비즈니스 서클 / 아웃소싱 파트 타임 개발-프로젝트 출시 /
보안 프로젝트 : 상황 인식 방어 시스템 / 인트라넷 검사 시스템
클라우드 서비스 프로젝트 : 클라우드 호스트 / 도메인 이름 / 탄력적 스토리지-데이터베이스-클라우드 디스크 / API-AI 모든
제품 컨설팅 / 서비스 애프터 서비스 (동일)의 동적 확장

그것은 항상 종이에 얕고, 나는이 문제가 반드시 이루어져야한다는 것을 절대적으로 압니다! ! !
사업을 시작할 같은 생각을 가진 파트너를 찾고 있습니다. . . Baotuan Didi aming 연락처 정보! !


#이 글은 광고 시스템이 자동으로 광고를 게재하기위한 것입니다.

# 침해, 삭제 등이 있으시면 신속히 연락 주시기 바랍니다.




# 3 시로 인정의 초기 실현

여기에 사진 설명 삽입

3.1 역할 판단

3.1.1 구성 파일 수정

비밀번호 바로 뒤에 사용자에 포함 된 역할 이름을 추가하면됩니다.

 [users]
zhangsan=zs,role1,role2
lisi=ls

3.1.2 코드 추가

hasRole ()은 반환 값을 사용하여 사용자에게 지정된 역할이 있는지 확인합니다.

 if(subject.isAuthenticated){
    
    
 		System.out.println("登录成功");
 		boolean hasRoleResult = SecurityUtils.getSubject().hasRole("role1");
		System.out.println("result:"+hasRoleResult);
}

여기에 사진 설명 삽입
여기에 사진 설명 삽입여기에 사진 설명 삽입

 通过  subject 看是否 有角色

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

3.2 심판 권한

3.2.1 구성 파일 수정

 [users]
zhangsan=zs,role1,role2
lisi=ls
[roles]
role1=permission1,permission2

여기에 사진 설명 삽입

여기에 사진 설명 삽입

3.2.2 테스트 코드 추가

인증에 성공
하면 AuthenticationException이 있는지 여부에 따라 권한 이 제어됩니다.
SecurityUtils.getSubject().checkPermission("permission");

여기에 사진 설명 삽입

4 Realm 구현 인증

4.1 iniRealm 사용

 public class ShiroRun {
    
    
 		public static void main(String[] args) {
    
    
 
 			SecurityManager securityManager = new DefaultSecurityManager();
			IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
			securityManager.setRealm(iniRealm);
 			SecurityUtils.setSecurityManager(securityManager);
 			Subject subject = SecurityUtils.getSubject();
 //web 项目时,用户名和密码是客户端表单传递过来的用户名和密码。
 AuthenticationToken token = new UsernamePasswordToken("admin", 
"pwd");
 		try {
    
    
 //login()方法没有返回值,只能通过是否有异常判断是否登录成功。
				 subject.login(token);
				 System.out.println("登录成功");
 			} catch (UnknownAccountException e) {
    
    
 				System.out.println("账号不存在");
 			} catch (IncorrectCredentialsException e) {
    
    
				 System.out.println("密码错误");
 			} catch (AuthenticationException e) {
    
    
				 e.printStackTrace();
			 }
 		} 		
 	}

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

추천

출처blog.csdn.net/qq_33608000/article/details/112847820