shiro-uaa é um serviço leve de conta de usuário e solução de autenticação de identidade (UAA) baseado em Shiro.
Quando você inicia um projeto, acredito que a simplicidade do Shiro se tornará a primeira escolha para a estrutura de permissão da maioria dos desenvolvedores. No entanto, quando o projeto se expande de 1 para n e requer autenticação e autorização unificadas, o próprio Shiro não suporta autenticação e autorização unificadas. .tornou-se uma limitação. O Shiro possui o CasFilter, mas o CAS é outro conjunto de frameworks, que é mais pesado para tornar o serviço de autenticação e autorização mais simples, leve e fácil de usar.
Servidor UAA leve
Puro Shiro
Fácil de aprender
Fácil de expandir
Pronto para usar
1. servidor de autenticação
especialista
Ponto de extremidade integrado
Descrição do endereço URI/uaa-auth/authenticationO endereço para solicitar autorização será direcionado para sua página de login/uaa-auth/authentication/apporveO servidor Auth concorda em autorizar e distribui o código address/uaa-auth/access-token para obter acesso de o endereço do token do servidor de autenticação/endereço uaa-auth/logout para sair do servidor de autenticaçãoAPI extensível
Nome da interface descrição AccessClientService serviço de aplicativo de acesso AccessTokenService serviço de token de acesso AccountService serviço de usuário AuthCodeServicecode serviço RoleService serviço de funçãoConecte-se
Personalize a página de login e a verificação de login, implemente org.apache.shiro.authc.credential.CredentialsMatcher, implemente a lógica de verificação durante o login e configure shiro.loginUrl
forwardError
Por padrão, quando ocorre um OAuthProblem no servidor, ele irá para o endereço do recurso (parâmetro redirect_uri) com informações de erro. Se forwardErrorUrl estiver configurado, ele não redirecionará e exibirá a página de erro. .uaa .server.forwardErrorUrl, o objetivo desta configuração é evitar saltos anormais usando o Server
Parâmetros de configuração estendidos
Nome do parâmetro descrição shiro.uaa.server.codeExpiresUAA distribuição Tempo de expiração do código, a unidade é segundos distribuição shiro.uaa.server.accessTokenExpiresUAA Tempo de expiração do AccessToken, a unidade é segundos shiro.uaa.server.refreshTokenExpiresUAA distribuição Tempo de expiração de RefreshToken, a unidade é shiro segundos. loginUrl endereço de login personalizado shiro.uaa.server.clien ts[].name nome do aplicativo de acesso, válido ao usar a memória padrão AccessClientService shiro.uaa.server.clients[].clientId aplicativo de acesso clientId, válido ao usar a memória padrão AccessClientService shiro.uaa.server.clients[].clientSecret access Insira o aplicativo clientSecret, que é válido ao usar a memória padrão AccessClientService shiro.uaa.ser ver.roles[].name nome da função, correspondente à função de Shiro, válido ao usar o RoleService de memória padrão shiro.uaa.server.roles[].permCodes[] permissões de função, correspondentes à permissão de Shiro, válidas ao usar a memória padrão RoleService . shiro. uaa.server.roles[].clientId O aplicativo ao qual a função pertence, válido ao usar a memória padrão RoleService shiro.uaa.server.accoun ts[].username nome de login da conta, válido ao usar a memória padrão AccountService shiro.uaa.server.accounts[].password senha da conta, válida ao usar a memória padrão AccountService shiro.uaa.server.accounts[].roles[] Função de propriedade da conta, válida ao usar a memória padrão AccountService shiro.uaa.server.forwardErrorUrl custom OAuthProblem Endereço de erro2.servidor de recursos
especialista
filterChainDefinition
implemente CustomFilterChainDefinition, defina caminhos diferentes para passar por diferentes filtros, o padrão /** passa por resourceServerFilter
sair
Efetue logout do Servidor de Recursos primeiro, depois efetue logout do UAA, configure o parâmetro shiro.logoutUrl para carregar LogoutEndpoint
anotação
O mesmo que Shiro
Nome da anotação@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestParâmetros de configuração estendidos
Descrição do nome do parâmetro shiro.uaa.resource.serverSchemeshiro.uaa.resource.serverHostUAA endereço do esquemashiro.uaa.resource.serverPortUAA endereçoPortshiro.uaa.resource.s Endereço erverContextPathUAA ContextPathshiro.uaa.resource.clientIdUAA atribuído ClientIdshiro.uaa.resource.clientSecretUAA atribuído ClientSecretshiro.logoutUrlResource Endereço de logout do servidor3. registrador de negócios
Registre os registros comerciais do usuário
anotação
Nome da anotação @BizLogger anotação método descrição observação observações, padrão: ""class_whether para registrar o nome da classe, padrão: truemethod se deseja registrar o nome do método, padrão: truearguments precisa registrar o índice do parâmetro, padrão: {}return_whether para gravar o valor de retorno, padrão: falsesubject Se deseja registrar o nome do usuário, padrão: trueBizLoggerEntityStringifier
implementar BizLoggerEntityStringifier, personalizar o conteúdo de saída do registrador
jdk1.8+ e inicialização de mola
Fornece serviços implantáveis de servidor de autenticação
Fornece métricas do usuário ao servidor de autenticação