Esta pode ser a estrutura de autorização Java mais abrangente da história!

O projeto de código aberto recomendado para todos hoje é superimpressionante e pode ser o framework de autorização Java mais totalmente funcional da história!
Insira a descrição da imagem aqui
Este projeto de código aberto é: sa-token.

Para mais materiais de entrevista e tutoriais em vídeo dos principais fabricantes, você pode clicar para entrar diretamente e obtê-los gratuitamente! Senha: CSDN

O que é Sa-Token?

sa-token é uma estrutura leve de autenticação de permissão Java, que resolve principalmente uma série de problemas relacionados a permissão, como autenticação de login, autenticação de permissão, sessão de sessão, logon único, OAuth2.0, etc.

A estrutura é adaptada para serviços comuns, como expulsar pessoas, renovação automática, separação de front-end e back-end, sessões distribuídas, etc., e por meio de sa-token, você pode implementar a parte de autenticação de autorização do sistema de forma minimalista maneira

Em comparação com outras estruturas de autorização, o sa-token tem as seguintes vantagens:

  1. Simples: estrutura de inicialização de configuração zero, uso real e pronto para uso, baixo custo para começar
  2. Poderoso: Dezenas de recursos relacionados a permissões foram integrados e soluções que cobrem a maioria dos cenários de negócios
  3. Fácil de usar: chamadas de API suaves e suaves e um grande número de recursos avançados podem ser implementados com apenas uma linha de código
  4. Alta expansão: quase todos os componentes fornecem interfaces de expansão e mais de 90% da lógica pode ser reescrita sob demanda

Com o sa-token, todos os seus problemas de autenticação de autoridade não são mais um problema!

O que o Sa-Token pode fazer?

  • Autenticação de login - autenticação de login fácil e fornece cinco tipos de valores de subcenário
  • Verificação de permissão - adapte-se ao modelo de permissão RBAC, funções diferentes têm autorizações diferentes
  • Sessão - um centro de cache de dados profissional
  • Expulse as pessoas offline - remova imediatamente os usuários ofensivos offline
  • Extensão da camada de persistência - pode integrar Redis, Memcached e outros middleware de cache profissional, reiniciar dados sem perda
  • Sessão distribuída - fornece duas soluções de sessão distribuída de integração jwt e data center compartilhado
  • Logon único um lugar para fazer login, em qualquer lugar
  • Simule a conta de outra pessoa - opere quaisquer dados de status do usuário em tempo real
  • Troca temporária de identidade - mudar temporariamente a identidade da sessão para outra conta
  • Cenários de separação frontal e traseira no modo sem cookies, como APP, miniaplicativo, etc.
  • Login mútuo exclusivo no mesmo computador e telefone celular QQ semelhante ao final estão online ao mesmo tempo, mas login mutuamente exclusivo em dois telefones celulares
  • Sistema de autenticação de várias contas - por exemplo, a tabela de usuário e a tabela de administração de um projeto de shopping são autenticadas separadamente
  • Geração sofisticada de tokens - seis estilos de tokens integrados e estratégias personalizadas de geração de tokens
  • A autenticação anotada separa elegantemente a autenticação do código comercial
  • Autenticação de interceptação de rota - de acordo com a autenticação de interceptação de rota, pode ser adaptada para o modo de repouso
  • Renovação automática - fornece duas estratégias de expiração de token, que podem ser usadas de maneira flexível e podem ser renovadas automaticamente
  • Gerenciamento de conversas - fornece uma interface de consulta de conversas conveniente e flexível
  • Integração automática de configuração de injeção-zero de componentes com Spring e outras estruturas
  • Mais funções estão sendo integradas ... —— Se você tiver boas idéias ou sugestões, seja bem-vindo para se juntar à comunicação do grupo ( clique para entrar diretamente na comunicação do grupo, senha: CSDN )

Exemplo de código

A chamada de API do sa-token é muito simples, quão simples é? Tome a verificação de login como exemplo, você só precisa de:

// 在登录时写入当前会话的账号id
StpUtil.setLoginId(10001);

// 然后在任意需要校验登录处调用以下API
// 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
StpUtil.checkLogin();

Até agora, concluímos a autorização de login com a ajuda da estrutura do token sa!

Sua cabecinha pode estar cheia de pontos de interrogação neste momento, é simples assim? E o realm personalizado? E os filtros globais? Não preciso escrever vários arquivos de configuração?

Na verdade, sou responsável por dizer a você aqui que no sa-token, a autorização de login é tão simples que não há necessidade de filtros globais e nenhuma configuração bagunçada! Apenas esta simples chamada de API é necessária para completar a autorização de login da sessão!

Quando você estiver farto de Shiro, Security e outras estruturas, entenderá como o design da API do sa-token é atualizado em relação a essas estruturas antiquadas tradicionais!

Exemplo de autenticação de permissão (apenas sessões com usuário: permissão para adicionar podem inserir a solicitação)

@SaCheckPermission("user:add")
@RequestMapping("/user/insert")
public String insert(SysUser user) {
return "用户增加";
}

Expulsar uma conta offline (isso lançará uma NotLoginException quando a outra parte acessar o sistema novamente)

// 使账号id为10001的会话注销登录
StpUtil.logoutByLoginId(10001);

Além dos exemplos acima, sa-token também pode completar as seguintes funções com uma linha de código:

StpUtil.setLoginId(10001);                // 标记当前会话登录的账号id
StpUtil.getLoginId();                     // 获取当前会话登录的账号id
StpUtil.isLogin();                        // 获取当前会话是否已经登录, 返回true或false
StpUtil.logout();                         // 当前会话注销登录
StpUtil.logoutByLoginId(10001);           // 让账号为10001的会话注销登录(踢人下线)
StpUtil.hasRole("super-admin");           // 查询当前账号是否含有指定角色标识, 返回true或false
StpUtil.hasPermission("user:add");        // 查询当前账号是否含有指定权限, 返回true或false
StpUtil.getSession();                     // 获取当前账号id的Session
StpUtil.getSessionByLoginId(10001);       // 获取账号id为10001的Session
StpUtil.getTokenValueByLoginId(10001);    // 获取账号id为10001的token令牌值
StpUtil.setLoginId(10001, "PC");          // 指定设备标识登录
StpUtil.logoutByLoginId(10001, "PC");     // 指定设备标识进行强制注销 (不同端不受影响)
StpUtil.switchTo(10044);                  // 将当前会话身份临时切换为其它账号

Endereço do projeto de código aberto:

https://github.com/click33/sa-token

Benefícios do leitor

Obrigado por ver aqui!
Compilei muitas das últimas perguntas da entrevista sobre Java para 2.021 (incluindo respostas) e notas de estudo sobre Java aqui, conforme mostrado abaixo
Insira a descrição da imagem aqui

As respostas às perguntas da entrevista acima são organizadas em notas de documento. Bem como entrevistas também compilou algumas informações sobre alguns dos fabricantes e entrevista Zhenti última coleção 2021 (ambos documentando uma pequena parte da captura de tela) grátis para que todos possam compartilhar, se necessário pode clicar para inserir o sinal: CSDN! Grátis para compartilhar ~

Se você gostou deste artigo, por favor, encaminhe-o e goste.

Lembre-se de me seguir!
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_49527334/article/details/114990312
Recomendado
Clasificación