Recentemente, ao escrever projetos com o SpringMVC, encontrei um problema, que é o problema de autenticação do método. Esse problema foi resolvido por um dia e finalmente resolvido. Vamos dar uma olhada na solução abaixo.
Requisitos do projeto: onde a autenticação é necessária, eu só preciso rotulá -la, como apenas a operação que pode ser executada pelo login do usuário. Geralmente, primeiro verificaremos a entrada de identidade do usuário ao executar o método, o que aumenta invisivelmente muita carga de trabalho e recriar a roda. Com as anotações Java, você só precisa rotulá -lo no método que requer autenticação:
Solução:
1. Primeiro, crie uma classe de anotação:
@Documentado@herded@target ({elementType.method, elementType.type})@retention (retentionpolicy.runtime) public @interface auth {boolean validate () padrão true;}2. Crie outro interceptador:
classe pública AuthInterceptor estende BaseInterceptor {@Override public boolean prehandle (solicitação httpSertLequest, resposta httpServletResponse, manipulador de objeto) lança exceção {if (handler.getclass (). manipulador) .getMethodannotation (auth.class); // Nenhuma permissão é declarada, ou nenhuma permissão é declarada como não é verificada se (authPassport == null) {return true;} else {// implementar sua própria lógica de verificação de permissão aqui se (true) {// se verificação é bem -sucedida, o retorno (falha. verificação "); retornar true;} else {// se a verificação falhar // retornar à interface de login // System.out.println (" A verificação da permissão está correta "); // Response.sendRedirect (" Account/Login "); retorna false;}}} else {return true;}}}3. Configure o interceptador: você precisa adicionar o seguinte código a *-Servlet.xml. Se você personalizar o arquivo de configuração, também poderá colocá -lo diretamente no arquivo de configuração definido.
<mvc: interceptores> <bean/> </mvc: interceptores>
NOTA: Você precisa alterar o padrão para requestmapphandlerMapping e adicionar o feijão de requestmapphandleRadapter
Apenas reinicie o tomcat.
Lembrete quente: se você precisar de autenticação para um método, só precisará digitar @Auth no método. Se você precisar de autenticação para todos os métodos de uma classe, você só precisará digitar @Auth na classe.
Portanto, o problema é que o método interceptador interceptará os recursos estáticos juntos. Precisamos interceptar arquivos estáticos no tomcat, como: minha solução é configurá -lo no web.xml. Se você tiver um bom método, também pode me adicionar QQ 752432995 para discuti -lo.
<Verlet-mapping> <Verlet-name> padrão </servlet-name> <url-pantattern>*.
Resumir
O exposto acima é o conteúdo inteiro deste artigo sobre o código da solução do interceptador de anotação usado para o SpringMVC para autenticação do método. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
Springmvc Interceptor implementa um único sinal
Explicação detalhada sobre se o interceptador Springmvc implementa a sessão de monitoramento expira
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!