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();
}
}
}