shiro-uaa es un servicio ligero de cuenta de usuario y solución de autenticación de identidad (UAA) basado en Shiro.
Cuando comienza un proyecto por primera vez, creo que la simplicidad de Shiro se convertirá en la primera opción para el marco de permisos de la mayoría de los desarrolladores. Sin embargo, cuando el proyecto se expande de 1 a n y requiere autenticación y autorización unificadas, Shiro en sí no admite autenticación y autorización unificadas. Shiro se ha convertido en una limitación, pero CAS es otro conjunto de marcos, que es más pesado. Para hacer que el servicio de autenticación y autorización sea más simple, liviano y fácil de usar, se creó Shiro-UAA.
Servidor UAA ligero
puro shiro
fácil de aprender
Fácil de ampliar
Listo para usar
1.servidor de autenticación
experto
Punto final incorporado
Descripción de la dirección URI/uaa-auth/authenticationLa dirección para solicitar autorización se dirigirá a su página de inicio de sesión/uaa-auth/authentication/apporveAuth Server acepta autorizar y distribuir el código dirección/uaa-auth/access-token para obtener acceso desde la dirección del token del servidor de autenticación/uaa-auth/dirección de cierre de sesión para cerrar sesión en el servidor de autenticaciónAPI extensible
Nombre de la interfaz descripción AccessClientService servicio de aplicación de acceso AccessTokenService servicio de token de acceso AccountService servicio de usuario AuthCodeServicecode servicio RoleService servicio de rolacceso
Personalice la página de inicio de sesión y la verificación de inicio de sesión, implemente org.apache.shiro.authc.credential.CredentialsMatcher, implemente la lógica de verificación durante el inicio de sesión y configure shiro.loginUrl
error de avance
De forma predeterminada, cuando ocurre un problema de OAuth en el servidor, saltará a la dirección del recurso (parámetro redirect_uri) con información de error. Si se configura forwardErrorUrl, no redireccionará ni mostrará la página de error. La página debe personalizarse y configurarse shiro. .uaa .server.forwardErrorUrl, el propósito de esta configuración es evitar saltos anormales usando el Servidor
Parámetros de configuración extendidos
Nombre del parámetro descripción shiro.uaa.server.codeExpiresUAA distribución Tiempo de vencimiento del código, la unidad es segundos shiro.uaa.server.accessTokenExpiresUAA distribución Tiempo de vencimiento del AccessToken, la unidad es segundos shiro.uaa.server.refreshTokenExpiresUAA distribución Tiempo de vencimiento del RefreshToken, la unidad es shiro segundos. loginUrl dirección de inicio de sesión personalizada shiro.uaa.server.clients[].name accede al nombre de la aplicación, válido cuando se utiliza la memoria predeterminada AccessClientService shiro.uaa.server.clients[].clientId accede a la aplicación clientId, válido cuando se utiliza la memoria predeterminada AccessClientService shiro.uaa.server.clients[].clientSecret accede a la aplicación clientSecret, válido cuando se usa la memoria predeterminada AccessClientService shiro.uaa.server.roles[].name nombre de rol, correspondiente al rol de Shiro, válido cuando se usa la memoria predeterminada RoleService shiro .uaa .server.roles[].permCodes[] permisos de rol, correspondientes al permiso de Shiro, válido cuando se usa la memoria predeterminada RoleService shiro.uaa.server.roles[].clientId La aplicación a la que pertenece el rol, válido cuando se usa el memoria predeterminada RoleService shiro.uaa.server .accounts[].username nombre de inicio de sesión de la cuenta, válida cuando se usa la memoria predeterminada AccountService shiro.uaa.server.accounts[].password contraseña de la cuenta, válida cuando se usa la memoria predeterminada AccountService shiro.uaa. server.accounts[].roles[] cuenta Tiene una función y es válida cuando se usa la memoria predeterminada AccountService shiro.uaa.server.forwardErrorUrl dirección de error OAuthProblem personalizada2.servidor de recursos
experto
filterChainDefinición
implemente CustomFilterChainDefinition, defina diferentes rutas para pasar a través de diferentes filtros, el valor predeterminado /** pasa a través de ResourceServerFilter
cerrar sesión
Primero cierre sesión en Resource Server, luego cierre sesión en UAA, configure el parámetro shiro.logoutUrl para cargar LogoutEndpoint
anotación
Igual que Shiro
Nombre de la anotación@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestParámetros de configuración extendidos
Nombre del parámetro descripción Shiro.uaa.resource.serverSchemeUAA dirección Schemeshiro.uaa.resource.serverHostUAA dirección Hostshiro.uaa.resource.serverPortUAA dirección Portshiro.uaa.resource.serverContextPathUAA dirección ContextPathshiro.uaa.resource.clientIdUAA asignada ClientIdshiro uaa.resource.clientSecretClientSecretshiro. .logoutUrlResource Dirección de cierre de sesión del servidor asignada por UAA3. registrador de negocios
Registrar los registros comerciales del usuario
anotación
Nombre de anotación @BizLogger método de anotación descripción comentarios comentarios, predeterminado: ""class_si se registra el nombre de la clase, predeterminado: truemethod si se registra el nombre del método, predeterminado: truearguments necesita registrar el índice del parámetro, predeterminado: {}return_si se registra el valor de retorno, predeterminado: falsesubjectSi se debe registrar el nombre de usuario, predeterminado: verdaderoBizLoggerEntityStringifier
implementar BizLoggerEntityStringifier, personalizar el contenido de salida del registrador
jdk1.8+ y arranque de resorte
Proporcionar servicios implementables de servidor de autenticación
Proporcionar métricas de usuario al servidor de autenticación