shiro-uaa는 Shiro를 기반으로 한 경량 사용자 계정 및 신원 인증 솔루션(UAA) 서비스입니다.
처음 프로젝트를 시작할 때 Shiro의 단순성은 대부분의 개발자의 권한 프레임워크에서 첫 번째 선택이 될 것이라고 믿습니다. 그러나 프로젝트가 1에서 n으로 확장되고 통합 인증 및 권한 부여가 필요한 경우 Shiro 자체는 통합 인증 및 권한 부여를 지원하지 않습니다. Shiro에는 CasFilter가 있지만 CAS는 인증 및 승인 서비스를 더 간단하고 가볍고 사용하기 쉽게 만들기 위해 만들어진 또 다른 프레임워크입니다.
경량 UAA 서버
퓨어 시로
배우기 쉽다
확장이 용이함
즉시 사용 가능
1. 인증 서버
메이븐
<종속성>내장 엔드포인트
URI 주소 설명/uaa-auth/authentication인증을 요청하는 주소는 로그인 페이지/uaa-auth/authentication/apporveAuth로 연결됩니다. 서버는 액세스 권한을 얻기 위해 코드 주소/uaa-auth/access-token을 승인하고 배포하는 데 동의합니다. 인증 서버에서 로그아웃하기 위한 인증 서버 토큰 주소/uaa-auth/logout 주소확장 가능한 API
인터페이스 이름 설명 AccessClientService 액세스 응용 서비스 AccessTokenService 액세스 토큰 서비스 AccountService 사용자 서비스 AuthCodeServicecode 서비스 RoleService 역할 서비스로그인
로그인 페이지 및 로그인 확인을 사용자 정의하고, org.apache.shiro.authc.credential.CredentialsMatcher를 구현하고, 로그인 중 확인 논리를 구현하고, shiro.loginUrl을 구성합니다.
앞으로오류
기본적으로 서버에서 OAuthProblem이 발생하면 오류 정보가 있는 리소스 주소(redirect_uri 매개변수)로 이동합니다.forwardErrorUrl이 구성된 경우 페이지를 사용자 정의하고 shiro를 구성해야 합니다. .uaa .server.forwardErrorUrl, 이 구성의 목적은 서버를 사용하여 비정상적인 점프를 방지하는 것입니다.
확장된 구성 매개변수
매개변수 이름 설명 shiro.uaa.server.codeExpiresUAA 배포 코드 만료 시간, 단위는 초 shiro.uaa.server.accessTokenExpiresUAA 배포 AccessToken 만료 시간, 단위는 초 shiro.uaa.server.refreshTokenExpiresUAA 배포 RefreshToken 만료 시간, 단위는 다음과 같습니다. shiro 초.loginUrl 사용자 정의 로그인 주소 shiro.uaa.server.clien ts[].name 액세스 애플리케이션 이름, 기본 메모리를 사용할 때 유효 AccessClientService shiro.uaa.server.clients[].clientId 액세스 애플리케이션 clientId, 기본 메모리를 사용할 때 유효 AccessClientService shiro.uaa.server.clients[].clientSecret 액세스 기본 메모리 AccessClientService shiro.uaa.ser를 사용할 때 유효한 애플리케이션 clientSecret을 입력하세요. ver.roles[].name 역할 이름, 시로의 Role에 해당, 기본 메모리 사용 시 유효 RoleService shiro.uaa.server.roles[].permCodes[] 역할 권한, 시로의 Permission에 해당, 기본 메모리 사용 시 유효 RoleService . shiro.uaa.server.roles[].clientId 역할이 속한 애플리케이션으로, 기본 메모리 RoleService를 사용할 때 유효합니다. ts[].username 계정 로그인 이름, 기본 메모리를 사용할 때 유효 AccountService shiro.uaa.server.accounts[].password 계정 비밀번호, 기본 메모리를 사용할 때 유효 AccountService shiro.uaa.server.accounts[].roles[] 계정 소유 역할, 기본 메모리를 사용할 때 유효 AccountService shiro.uaa.server.forwardErrorUrl 사용자 정의 OAuthProblem 오류 주소2.리소스 서버
메이븐
<종속성>filterChain정의
CustomFilterChainDefinition을 구현하고, 다양한 필터를 통과하도록 다양한 경로를 정의하고, 기본 /**는 resourcesServerFilter를 통과합니다.
로그아웃
먼저 리소스 서버에서 로그아웃한 다음 UAA에서 로그아웃하고 LogoutEndpoint를 로드하도록 shiro.logoutUrl 매개변수를 구성합니다.
주석
시로와 똑같다
주석 이름@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuest확장된 구성 매개변수
매개변수 이름 설명 shiro.uaa.resource.serverSchemeshiro.uaa.resource.serverHostUAA 구성표의 주소shiro.uaa.resource.serverPortUAA 주소Portshiro.uaa.resource.s erverContextPathUAA 주소 ContextPathshiro.uaa.resource.clientIdUAA 할당 ClientIdshiro.uaa.resource.clientSecretUAA 할당 ClientSecretshiro.logoutUrlResource 서버 로그아웃 주소3. 비즈니스 로거
사용자의 업무 기록을 기록합니다.
<종속성>주석
주석 이름 @BizLogger 주석 메서드 설명 주석 설명, 기본값: ""class_클래스 이름을 기록할지 여부, 기본값: truemethod 메서드 이름을 기록할지 여부, 기본값: truearguments는 매개변수의 인덱스를 기록해야 함, 기본값: {}return_기록할지 여부 반환 값, 기본값:falsesubject사용자 이름을 기록할지 여부, 기본값: trueBizLoggerEntityStringifier
BizLoggerEntityStringifier 구현, 로거 출력 콘텐츠 사용자 정의
jdk1.8+ 및 스프링 부트
인증 서버 배포 가능 서비스 제공
인증 서버에 사용자 측정항목 제공